var x = 5;
console.log(x++ + ++x);
console.log(++x * --x);
console.log(x);刚刚查了一下,开始很困惑应该是11才对;为什么是12呢。后来查询发现,+运算符的优先级低于++所以应该是先++x 然后运行完了 再执行 x++ 这两个都执行完了再执行+运算;所以结果为12. 如果理解有误欢迎大家指正
var x = 5; // x++返回5, ++x返回7, 5 + 7 = 12 console.log(x++ + ++x); // 此时x=7. ++x返回8, --x返回7, 8 * 7 = 56 console.log(++x * --x); // 此时x=7. console.log(x);
本题考察的是运算符优先级规则和前置递增与后置递增的区别。
运算符优先级规则如下:后置递增(17),前置递增(16),乘号(14),加号(13)
后置递增:先返回值,然后执行递增操作
后置递增:先执行递增操作,然后再返回值
参考文档: