我正在学习javascript,而且我在IIFE
语法上受到了打击。
我理解要编写IIFE
我们需要将函数作为表达式然后调用它。
我们可以通过在()
之间包装函数来使其成为表达式。或者在函数关键字前加上+
,-
,~
,!
。
现在针对这个问题,当我使用++
前缀时,我在控制台中收到错误。
代码:
++function(){console.log("hello")}();
错误:
Uncaught ReferenceError: Invalid left-hand side expression in prefix operation
为什么我不能使用++
? ++
是一元运算符,我认为它会使解释器将匿名函数视为函数表达式,就像+
,-
等一样。
我哪里错了?
答案 0 :(得分:5)
正如错误消息所示,函数()...不是有效的左侧表达式,即无法将分配给。
+, - ,〜,!将导致表达式评估。另一方面,增量运算符(++)不仅会对表达式进行求值,还会对 modified 进行求解,而这个表达式不允许这样做。
答案 1 :(得分:3)
++
修改右侧的值因此您必须在RHS上放置一些可存储新值的内容。函数调用的返回值传递到左侧,但不是存储位置。