• javascript 操作符


    操作符包括算数操作符(如加号和减号),位操作符,关系操作符和相等操作符
    在ecmaScript 中,在操作符应用于对象时,相应的操作符通常都会调用对象的valueOf()或者toString()方法
    1.递增递减操作符:
    应用时会先将待操作的变量转换为数字值,否则设置为NaN,在执行操作
    2.一元加和减操作符
    在对非数值应用一元加操作符时,该操作符会像Number()转型函数一样对这个值执行转换。换句话说,布尔值false和true将被转换为0和1,字符串值会被按照一组特殊的规则进行解析
    var aa="01";
    var bb="1.1";
    var cc="zz"
    var dd=false;
    var ee=1.1;
    var o={
    ss:1
    }
    var aa1=+aa; //1
    var bb1=+bb;//1.1
    var cc1=+cc;//NaN
    var dd1=+dd;//0
    var ee1=+ee;//1.1
    var o1=+o.ss;//1
    3.布尔操作符 
     1.逻辑非
     逻辑非操作符首先会将它的操作数转换为一个布尔值,然后再对其求反
    逻辑非操作符遵循下列规则:
    如果操作数是:
    一个对象,返回false
    一个空字符串,     返回true
    一个非空字符串,  返回false
    数值0                    返回true
    任意非0数值          返回 false
    null                       返回true
    NaN                     返回true
    undefind               返回true
    逻辑非操作也可以用于将一个值转换为与其对应的布尔值。而同时使用来那个逻辑非操作符,实际上就会模拟Boolean( )转型函数的行为
     
    2.逻辑与
    逻辑与可以应用于任何类型的操作数,而不仅仅是布尔值。在有一个数不是布尔值的情况下,逻辑与操作就不一定返回布尔值;他遵循下列规则:
    如果有一个操作数是null               返回null
    如果有一个操作数是NaN             返回NaN
    如果有一个操作数是undefined     返回undefined
     
    3.逻辑或
    与逻辑与操作相似,如果有一个操作数不是布尔值,逻辑或也不一定返回布尔值
     
    4.乘性操作符 
      1.乘法
         在操作数为非数值的情况下会执行自动的类型转换。如果参与乘法计算的某个操作数不是数值,后台会先使用Number()转型函数将其转换为数值。也就是说空字符串将被当作0,true将被当作1
         规则:
         有一个操作数是NaN,则结果是NaN;
         infinity与0相乘,结果 NaN
       2.除法
         与乘法类似
         规则:
         除数是0或者Infinity  返回NaN
       3.求模
         5 % Infinity         返回5                        (除数无穷大)
         Infinity % 5         返回NaN                    (被除数无穷大)
        5 % 0                   返回NaN                    (被除数有限大而除数是0)
    5.加性操作符
     
     1.加法
    Infinity加Infinity       返回Infinity
    -Infinity加-Infinity     返回-Infinity
    Infinity加-Infinity      返回NaN
    5+5                      返回10
    5+“5”                    返回“55”
    
    
    var num1=5;
    var num2=10;
    var message="this sum of 5 and 10 is "+num1+num2;
    console.log(message);
    输出:
    this sum of 5 and 10 is 510
    
    var num1=5;
    var num2=10;
    var message="this sum of 5 and 10 is " + (num1+num2);
    console.log(message);
    输出:
    this sum of 5 and 10 is 15

     2.减法

    Infinity-Infinity                //NaN
    -Infinity-(-Infinity)           //NaN
    Infinity-(-Infinity)             //Infinity
    -Infinity-Infinity               //-Infinity  
     
     var result1 = 5 - true;         //4 true被转换成了1
     var result2 = NaN-1;            //NaN
     var result3 = 5 - "2";         //3 "2"被转换成了2
     var result4 = 5 - "";          //5 ""被转换成了0
     var result5 = 5 - null;         //5 null被转换成了0  
     
    4.关系操作符
    在比较字符串符时,实际比较的是两个字符串中对应位置的每个字符的字符编码值
    任何操作数与NaN比较,都返回false
    "Brick"<"alphabet"                                        //true
    "Brick".toLowerCase()<"alphabet".toLowerCase();           //false
    "23" < "3"                                                //true 2的字符编码50  3的字符编码51
    "23" <  3                                                //false
    "a"  <  3                                                //false
    5.相等操作符
    1.不全等:
    null和undefined 是相等的
    要比較相等性之前,不能將NULL和undefined转换成其他任何值
    如果有一个操作数是NaN,则相等操作符返回false,而不相等操作符返回true。即使两个操作数都是NaN,相等操作符也返回false;因为按照规则,NaN不等于NaN.
    null == undefined
    true
    "NaN"==NaN
    false
    NaN==NaN
    false
    NaN != NaN
    true
    false == 0
    true
    true == 1
    true
    true == 2
    false
    undefined == 0
    false
    null == 0
    false
    
    1.全等:
    除了在比较之前不转换操作数之外,全等和不全等操作符没什么区别。
    
    555 === "555"
    false
    555 == "555"
    true
    555 !== "555"
    true
    555 != "555"
    false
    undefined == null  //null与undefined是不同类型的值
    true
    undefined === null
    false

    6.条件操作符

    var max = (num1 > num2) ? num1 :num2;

    7.赋值操作符

    每个主要算术操作符都有对应的复合赋值操作符。这些操作符如下所示:

    var nn = 10;
    nn += 10;
    20
    var num = 10;
    num =num +10;
    20
    var ss=5;
    ss *=5;
    25
    var dd=5;
    dd /=5;
    1
    var ff=5;
    ff %=5;
    0
    var ee=5;
    ee -=2;
    3
    8.逗号操作符
    使用逗号操作符可以在一条语句中执行多个操作
  • 相关阅读:
    [CareerCup][Google Interview] Merge Two BST
    [面试] 全排列(非递归)
    [CareerCup][Google Interview] 打印最长序列
    [CareerCup][Google Interview] 实现一个具有get_min的Queue
    [LeetCode] Count and Say
    [LeetCode] Decode Ways
    定期向企业内部员工介绍企业当前的业务状况及未来的发展方向
    基础数据的来源的统一
    项目管理之代码合并
    年初离职潮的思考
  • 原文地址:https://www.cnblogs.com/zjy1017/p/7101913.html
Copyright © 2020-2023  润新知