分享

JavaScript 中的一元操作符

 程序员读书空间 2023-03-17 发布于浙江

操作数据值的操作符,包括数学操作符(如加、减)、位操作符、关系操作符和相等操作符等。

 只操作一个值的操作符叫一元操作符(unary operator)。

  let age = 29;   ++age;

在这个例子中,前缀递增操作符把age的值变成了30(给之前的值29加1)。因此,它实际上等于如下表达式:

  let age = 29;  age=age+1;

前缀递减操作符也类似,只不过是从一个数值减1。

  let age = 29;  --age;

无论使用前缀递增还是前缀递减操作符,变量的值都会在语句被求值之前改变

let age = 44;let anotherAge = --age + 2;console.log(age);           // 43console.log(anotherAge);   // 45

前缀递增和递减在语句中的优先级是相等的,因此会从左到右依次求值

let num1 = 2;let num2 = 20;let num3 = --num1 + num2;let num4 = num1 + num2;console.log(num3);   // 21console.log(num4);   // 21

num3等于21是因为num1先减1之后才加num2。

变量num4也是21,那是因为加法使用的也是递减后的值。

let num1 = 2;let num2 = 20;let num3=num1--+num2;let num4 = num1 + num2;console.log(num3);   // 22console.log(num4);   // 21

num3的值是22,num4的值是21。

这里的不同之处在于,计算num3时使用的是num1的原始值(2),而计算num4时使用的是num1递减后的值(1)。

  let s1 = "2";  let s2 = "z";  let b = false;  let f = 1.1;  let o = {    valueOf() {      return -1;    }  };  s1++;   // 值变成数值3  s2++;   // 值变成NaN  b++;    // 值变成数值1  f--;    // 值变成0.10000000000000009(因为浮点数不精确)  o--;    // 值变成-2

对于字符串如果是有效的数值形式,则转换为数值再应用改变。变量类型从字符串变成数值。

 对于字符串,如果不是有效的数值形式,则将变量的值设置为NaN。

对于布尔值,如果是false,则转换为0再应用改变;如果是true,则转换为1再应用改变。

对于浮点值,加1或减1。


完毕

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多