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

ssh*_*ssh 3 javascript function iife

我正在学习javascript而且我对IIFE语法很感兴趣.

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

我们可以通过在中间包装函数使其成为表达式().或用前缀function关键字+,-,~,!.

现在针对这个问题,当我前缀时,++我在控制台中收到错误.

码:

++function(){console.log("hello")}();
Run Code Online (Sandbox Code Playgroud)

错误:

Uncaught ReferenceError: Invalid left-hand side expression in prefix operation
Run Code Online (Sandbox Code Playgroud)

为什么我不能使用++++是一元运算符,我想这会让解释认为匿名函数的函数表达式一样+,-等等,做到了.

我哪里错了?

Pet*_*ris 5

它无法分配给

作为该错误消息表示,该函数()...不是有效的左手侧表达,即,其不能被分配.

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