美文网首页
JavaScript基本概念之操作符——一元操作符

JavaScript基本概念之操作符——一元操作符

作者: 胖胖冰 | 来源:发表于2017-05-18 13:47 被阅读8次

    ECMA-262描述了一组用于操作数据值的操作符,包括算术操作符(如加号和减号)、位操作符、关系操作符和相等操作法。ECMAScript操作符的与众不同之处在于,它们能够适用于很多值,如:字符串、数字值、布尔值、甚至对象。不过,在应用于对象是,相应的操作符通常都会调用对象的valueOf()和(或)toString()方法,以便取得可以操作的值。

    一元操作符

    只能操作一个值的操作符叫一元操作符。

    • 1. 递增和递减操作符
      ++ --
      各有两个版本:前置型和后置型

    前置型:变量的值都在语句被求值以前改变。
    后置型:变量的值在包含它们的语句被求值之后改变

    递增和递减操作符遵循下列规则:

    • 在应用于一个包含有效数字字符的字符串时,先将其转换为数字值,再执行加减1的操作。字符串变量变成数值变量。
    • 在应用于一个不包含有效数字字符的字符串是,将变量的值设置为NaN。字符串变量变成数值变量。

    • 在应用于布尔值false时,先将其转换为0在执行加减1的操作。布尔值变量变成数值变量。

    • 在应用于布尔值true时,先将其转换为1在执行加减1的操作。布尔值变量变成数值变量。

    • 在应用与浮点数值时,执行加减1的操作。

    • 在应用与对象时,先调用对象的valueOf()方法,以便取得可以操作的值。然后对该值进行前述规则。如果是NaN,则调用toString()方法后在应用前述规则。对象变量变成数值变量。

    • 2. 一元加和减操作符

    一元加和减操作符主要用于基本的算术运算,也可以由于转换数据类型

    一元操作符(+ -),放在数值前面,对数字不会产生任何影响。在非数值前面,会对这个值进行转换,布尔值true(1)、false(0)、,字符串会被按照一组特殊的规则进行解析,对象会先调用它们的valueOf()和(或)toString()方法,在转换得到值。

    var s1 = "01";
    var s2 = "1.1";
    var s3 = "z";
    var b = false;
    var f = 1.1;
    var o = {
      valueOf:function(){
      return -1;
      }
    };
    
    s1 = +s1; //1
    s2 = +s2; //1.1
    s3 = +s3; //NaN
    b = +b;  //0
    f = +f; //1.1
    o = +o; //-1
    
    var s1 = "01";
    var s2 = "1.1";
    var s3 = "z";
    var b = false;
    var f = 1.1;
    var o = {
      valueOf:function(){
      return -1;
      }
    };
    
    s1 = -s1; //-1
    s2 = -s2; //-1.1
    s3 = -s3; //NaN
    b = -b;  //0
    f = -f; //-1.1
    o = -o; //1
    

    相关文章

      网友评论

          本文标题:JavaScript基本概念之操作符——一元操作符

          本文链接:https://www.haomeiwen.com/subject/wtcsxxtx.html