<分区>
我正在查看一个开源项目,并看到类似这样的内容:
;(function(){
// codes here
})()
我想知道那里的分号是否有特殊含义?
标签 javascript
<分区>
我正在查看一个开源项目,并看到类似这样的内容:
;(function(){
// codes here
})()
我想知道那里的分号是否有特殊含义?
最佳答案
这是因为 ASI(自动分号插入)允许您避免使用分号。
例如,你可以写出这样的代码而不会出错:
var a = 1
a.fn = function() {
console.log(a)
}
看到了吗?没有一个分号。
但是,也有不插入分号的情况。基本上,在实际项目中,有一种情况不是:当下一行以括号开头时。
javascript 解析器会将下一行作为参数,不会自动添加分号。
例子:
var a = 1
(function() {})()
// The javascript parser will interpret this as "var a = 1(function() {})()", leading to a syntax error
为了避免这种情况,有几种方法:
使用以下结构:
!function() {}()
关于javascript - 函数前的分号是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10044695/