【发布时间】:2020-01-30 10:50:59
【问题描述】:
第一个 console.log 输出是 2。毫无疑问。
但是为什么第二个 console.log 输出不是未定义的?一开始不应该输出未定义的,那么变量b就变成了NaN?
var a = 2;
console.log(a++);
var b;
console.log(b++);
【问题讨论】:
-
是的,这是合乎逻辑的。未定义 + 1 是 NaN
-
x++计算结果为Number(<previous value of x>),而不是<previous value of x>,因为它是数字运算符。足够合乎逻辑,不会真的出现,它就是这样工作的。
标签: javascript undefined increment var hoisting