This question already has answers here:
What are the rules for JavaScript's automatic semicolon insertion (ASI)?
(6个答案)
strange observation on IIFE in node.js (Windows)
(2个答案)
4年前关闭。
我正在用JavaScript查看IIFE,据我所知,这只是关于如何编写IIFE的一种样式选择,并且下面的两种方法都应该起作用。
这将记录:
或者,当我以
如您所见,当我以
如果您遵循无分号的方法,则需要使用分号保护以
例如:
(6个答案)
strange observation on IIFE in node.js (Windows)
(2个答案)
4年前关闭。
我正在用JavaScript查看IIFE,据我所知,这只是关于如何编写IIFE的一种样式选择,并且下面的两种方法都应该起作用。
var sum = 0
(function test(n){
sum += n
}(1));
console.log(sum);
这将记录:
Uncaught TypeError: 0 is not a function
。或者,当我以
!
开始IIFE时,它可以工作var sum = 0
!function test(n){
sum += n
}(2);
console.log(sum) //logs 2
如您所见,当我以
!
开始IIFE时,它会按预期工作。我现在非常困惑,因为我认为这只是您如何实施IIFE的风格选择。谁能解释? 最佳答案
这与您仅使用一个圆括号无关,因为第一行末尾缺少分号。
在没有换行的情况下查看它即可看到问题。
var sum = 0(function test(n){
sum += n
}(1));
如果您遵循无分号的方法,则需要使用分号保护以
[
或(
开头的换行符。例如:
var sum = 0
;(function test(n){
sum += n
}(1))
关于javascript - 以一个括号括弧开头的IIFE无法正常工作,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36070927/
10-10 22:02