我对 IIFE 的工作原理做了一些小的研究。并且偶然发现了一种行为,我相信这与ASI机制有关。这是非常不言自明的代码示例。
该块将成功执行:
!function (){}()
^function (){}()
这不是:
^function (){}()
!function (){}()
作为!
符号的替代品,您可以使用+
,-
和~
。替换^
可能是&
, *
, ,
.
谁能给出比我最后给出的“这就是 ASI 在 JavaScript 中的工作方式”更好的解释?这可能是完全错误的,我不得不承认。