为什么JavaScript中递增、递减运算符不能对字面量进行运算?

如题。

如果我对字面量进行递增、递减运算,会报错,bad operand。

console.log(--"-3.1415E-3");  // --运算符是支持字符串类型的

只能对变量进行递增、递减运算,才不会报错。

var x = "-3.1415E-3";
console.log(--x);

在提这个问题的时候,我想到:这会不会是因为“JavaScript中字符串的值不能改变”这个原因?

阅读 2.5k
2 个回答

自增运算符只能用于变量,这个应该很容易理解,因为自增运算符自增后的结果会赋值给该变量,设想对一个字面量进行自增后的结果存到哪里呢?根本没有变量可存,所以也就没有意义。

字面量不是左值,当然不能进行自增、自减运算!
自增自减运算相当于(不完全是)
++i --> i = i + 1
--i --> i = i - 1
试想,字面量能被赋值吗?

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题