Uncaught SyntaxError: Invalid left-hand side expression in postfix operation
Uncaught SyntaxError: Invalid left-hand side expression in postfix operation
拜托!帮帮我,我超级困惑。
为什么
true++
结果
"Uncaught SyntaxError: Invalid left-hand side expression in postfix operation"
但是
undefined++
是
NaN
如果我这样做。
let a = true;
a++;
a;
答案是2。
您只能递增您可以赋值的东西,即变量、数组成员或对象属性。您不能增加常量。 true
是常量,所以 true++
是语法错误,例如 true=5
或 12++
或 13=7
.
undefined
是 不是 常量,它传统上是全局对象的 属性 (因为某些早期 JS 版本中的错误太晚了修复)。因此解析器不会抱怨 undefined++
,尽管这个表达式没有意义(并在严格模式下引发错误)。
拜托!帮帮我,我超级困惑。
为什么
true++
结果
"Uncaught SyntaxError: Invalid left-hand side expression in postfix operation"
但是
undefined++
是
NaN
如果我这样做。
let a = true;
a++;
a;
答案是2。
您只能递增您可以赋值的东西,即变量、数组成员或对象属性。您不能增加常量。 true
是常量,所以 true++
是语法错误,例如 true=5
或 12++
或 13=7
.
undefined
是 不是 常量,它传统上是全局对象的 属性 (因为某些早期 JS 版本中的错误太晚了修复)。因此解析器不会抱怨 undefined++
,尽管这个表达式没有意义(并在严格模式下引发错误)。