例如,在下面的 JavaScript 代码中,为什么我们在使用变量时不会收到错误,但在使用数字文字时却收到错误(在节点 v6.9.5 上运行)?
let x = 2;
console.log(x++); //2
let y = 2;
console.log(++y); //3
console.log(2++); //ReferenceError: Invalid left-hand side expression in postfix operation
console.log(++2); //ReferenceError: Invalid left-hand side expression in prefix operation
我的理解是,这不起作用,因为你无法改变文字 2。在前面的示例中,你返回了 x 或 y(在递增之前或之后),因此它现在等于其先前值的+1(因此x/ y 现在指向 3,而不是 2)。但是,您不能将 2 递增为之前的值 +1,然后让它指向文字 3。2 将始终是 2,2 永远不会指向 3。
我的推理正确吗?
文字是常量,递增/递减将尝试分别更改其参数。但常数值不能改变。
这就像编码类似的东西一样
2 = 2 + 1;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)