javascript - 一道js面试题目
天蓬老师
天蓬老师 2017-04-10 15:43:58
[JavaScript讨论组]

下面的输出结果是什么?

var x =  2;
console.log(x+++x);
天蓬老师
天蓬老师

欢迎选择我的课程,让我们一起见证您的进步~~

全部回复(5)
阿神
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
阿神

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

参考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中一元运算符的优先级高于二元运算符

天蓬老师

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

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号