var x = null;
x生成一个ReferenceError,但是当我使用postfix increment operator x执行相同操作时,它可以正常工作.
解决方法
运算符的LeftHandSideExpression不能是数字.例如
1++;
将失败并出现相同的错误(无效的增量操作数).您只能在变量/标识符/表达式上应用前后增量运算符.
由于符号将空值转换为数字(0),因此您得到相同的结果.
例子:
var foo = null,bar = 5; foo++; // 0 0++; // invalid increment operand null++; // invalid increment operand (+bar)++ // invalid increment operand foo++ +2; // 2