javascript - 为什么中缀增量运算符 (++) 不能用于 IIFE?

标签 javascript function iife

我正在学习 javascript,我对 IIFE 语法感到震惊。

我明白要编写 IIFE 我们需要将函数作为表达式然后调用它。

我们可以通过在 () 之间包装函数使其成为表达式。或者在函数关键字前加上+,-,~,!

现在的问题是,当我以 ++ 为前缀时,我在控制台中收到错误消息。

代码:

++function(){console.log("hello")}();

错误:

Uncaught ReferenceError: Invalid left-hand side expression in prefix operation

为什么我不能使用++++ 是一元运算符,我认为它会让解释器将匿名函数视为函数表达式,就像 +- 等一样,做了。

我哪里错了?

最佳答案

无法分配给

如错误消息所述,函数 ()... 不是有效的左侧表达式,即不能将其分配给

+, -, ~, !将导致表达式被求值。另一方面,增量运算符 (++) 不仅会导致表达式被求值,还会被修改,这对于此表达式是不允许的。

关于javascript - 为什么中缀增量运算符 (++) 不能用于 IIFE?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43009423/

相关文章:

c++ - 指向函数范围内的对象的指针

javascript - 你应该使用局部内部函数吗?

javascript - 从 IIFE 动态调用构造函数

JavaScript 堆内存不足 (Nodejs)

javascript - 如何使用 fs extra 和 base64 文本保存物理图像

javascript - 我怎样才能使图像 map 的区域像复选框一样?

c - 为什么 getline 在 C 函数中失败?

html 元素的包装函数中的 Javascript 事件

javascript - IIFE 上下文问题

javascript - 语法错误 : Unexpected token in js file on compilation