首页 > 一道js面试题目

一道js面试题目

下面的输出结果是什么?

var x =  2;
console.log(x+++x);

var x =  2;
console.log(x+++x);

等价于

var x =  2;
console.log( x++ + x);

主要是以下两点:

  1. 运算符优先级关系:
    ++ > +,这就是为什么不理解成x + ++x的原因,当然在这里的结果凑巧是一样的。

  2. 前自增和后自增的区别:
    x++++x 的区别,C语言里面也有。可以尝试输入以下例子对比:

var x =  2;
console.log(x++);    // 2
console.log(++x);    // 3

更形象的例子:

var x =  2;
console.log(x+++x);      // 5
console.log(x+++x++);    // 5

console.log(x+++x)
等价于
console.log(x+(++x));// 2+3=5


后缀式运算符是在计算过包含它们的表达式后才进行增量或减量运算的

参考W3School ECMAScript 一元运算符

var x = 2;
// x++ === 2 true  若为 ++x === 3 true    
x++ + x; // 2 + 3 === 5 true

5

var x =  2;
console.log(x);//2
console.log((x++)+x);//5
console.log(x);//3

实际上考的是x++++x的区别

console.log(++x+x)//6

javascript中一元运算符的优先级高于二元运算符

【热门文章】
【热门文章】