zoukankan      html  css  js  c++  java
  • Javascript 基础学习(五)js 的运算符

    通过运算符可以对一个或多个值进行运算,并且一定有运算结果返回

    算数运算符

    ​ 算数运算符包括相加(+)、相减(-)、相乘(*)、相除(/)、取模(%)。任何值与字符串相加都会转换为字符串,做的是字符串连。除了与字符串做加法,当对非 Number 类型的值进行运算时,会将这些值转换为 Number 再运算。任何值和 NaN 做运算都得 NaN

    //js里面不区分整数和小数
    var j = 123;
    alert(j/1000*1000);  
    //  j/1000*1000    在java里面得到结果是 0 
    // 在js里面不区分整数和小数,123/1000=0.123 * 1000 = 123
    
    //字符串的操作
    var str = "456";
    alert(str+1);   //在java里面操作的结果是 4561 ,在js里面还是 4561
    alert(str-1);   //相减时候,执行减法的运算
    //提示:NaN表示不是一个数字
    

    一元运算符

    正负号

    //正号(+)表示正数
    var a = 123;
    a = +a;
    console.log(a);	/123
    //负号(-)表示负数
    var a = 123;
    a = -a;
    console.log(a);	/-123
    

    自增

    ​ 自增可以使变量在原值的基础上自增1。

    ​ 自增使用 ++。

    ​ 自增可以使用 前++(++a)后++(a++)。

    ​ 无论是++a 还是 a++都会立即使原变量自增1

    ​ 不同的是++a和a++的值是不同的,++a的值是变量的新值(自增后的值), a++的值是变量的原值(自增前的值)

    自减

    ​ 自减可以使变量在原值的基础上自减1。

    ​ 自减使用 --。

    ​ 自减可以使用 前--(--a)后--(a--)。

    ​ 无论是--a 还是 a--都会立即使原变量自减1。

    ​ 不同的是--a和a--的值是不同的,--a的值是变量的新值(自减后的值),a--的值是变量的原值(自减前的值)

    注意

    ​ 对于非 Number 类型的值会先转换为 Number 再运算。typeof 运算符可以获得一个值的类型,它会将该值的类型以字符串形式返回。

    var a = 123;
    var result = typeof a;
    console.log(typeof result);	/string
    

    逻辑运算符

    非 !

    ​ 对一个布尔值进行取反运算。如果对非布尔值进行运算,则会先转换为布尔值再取反

    与 &&

    ​ 两个值只要有一个为 false 则返回 false。只有两个值都为 true 才返回 true。对于非布尔值运算,如果两个值都为 true,则返回后边的原值,如果两个值中有 false,则返回靠前的 false。归纳以上两点,如果第一个值为 true,则必然返回第二个值,如果第一个值为 false,则直接返回第一个值。

    或 ||

    ​ 两个值只要有一个 true,就返回 true。如果两个值都为 false,才返回 false。对于非布尔值运算,如果第一个值为 true,则直接返回第一个值,如果第一个值为 false,则直接返回第二个值

    赋值运算符

    ​ (=):可以将符号右侧的值赋值给左侧变量

    ​ (+=):a += 5 相当于 a = a+5

    ​ (-=):a -= 5 相当于 a = a-5

    ​ (=):a * = 5 相当于 a = a5

    ​ (/=):a /= 5 相当于 a = a/5

    ​ (%=):a %= 5 相当于 a = a%5

    关系运算符

    ​ 关系运算符用来比较两个值之间的大小关系的。分别有>,>=,<,<=。关系运算符的规则和数学中一致,用来比较两个值之间的关系,如果关系成立则返回true,关系不成立则返回false。如果比较的两个值是非数值,会将其转换为Number然后再比较。如果比较的两个值都是字符串,此时会比较字符串的Unicode编码,而不会转换为Number。

    编码转换输出

    //在字符串中使用转义字符输入 Unicode 编码,u四位编码。
    console.log("u2620")
    //在网页中使用 Unicode 编码,&#编码,这里的编码需要十进制
    <h1>&#9760</h1>
    

    相等运算符

    1. (==)

      相等判断左右两个值是否相等,如果相等返回true,如果不等返回false。相等会自动对两个值进行类型转换,如果对不同的类型进行比较,会将其转换为相同的类型然后再比较,转换后相等它也会返回true。

    2. (!=)

      不等,判断左右两个值是否不等,如果不等则返回true,如果相等则返回false。不等也会做自动的类型转换。

    3. (===)

      全等,判断左右两个值是否全等,它和相等类似,只不过它不会进行自动的类型转换,如果两个值的类型不同,则直接返回false。

    4. (!==)

      不全等,和不等类似,但是它不会进行自动的类型转换,如果两个值的类型不同,它会直接返回true。

    5. 特殊的值

      1. null和undefined

        由于undefined衍生自null,所以null == undefined 会返回true。

      2. NaN

        NaN不与任何值相等,即使它自身 NaN == NaN ,也会返回false。判断一个值是否是NaN,使用isNaN()函数

    条件运算符

    ​ 语法:条件表达式?语句1:语句2;。

    ​ 先对条件表达式求值判断,如果判断结果为true,则执行语句1,并返回执行结果,如果判断结果为false,则执行语句2,并返回执行结果 。

    运算符优先级

    ​ 和数学中一样,JS中的运算符也是具有优先级的,比如 先乘除 后加减 先与 后或。具体的优先级可以参考优先级的表格,在表格中越靠上的优先级越高,优先级越高的越优先计算,优先级相同的,从左往右计算。优先级不需要记忆,如果越到拿不准的,使用()来改变优先级

  • 相关阅读:
    php程序员的弱点
    php cli 模式下执行文件,require 加载路径错误
    第一次!
    IO流(一)之IO流综述
    异常和错误
    Comparable与Comparator比较分析
    Collection与Map学习笔记(三)
    两个对象比较
    Collection与Map学习笔记(二)
    包装类、及装箱和拆箱
  • 原文地址:https://www.cnblogs.com/Yee-Q/p/12322505.html
Copyright © 2011-2022 走看看