美文网首页
javascript里function之前加上感叹号'!

javascript里function之前加上感叹号'!

作者: Taotao_Lee | 来源:发表于2018-12-17 14:33 被阅读4次

不积跬步,无以至千里;不积小流,无以成江海


今天在一个js文件里面看到 !function(){}() 这种写法,看不懂是什么意思,就网上查找资料。

我们普通的函数声明:

function f1(){
    alert("这是一个函数");
}

我们声明f1函数,就可以通过 f1();的方式调用;
但是如果我们直接在函数声明后面添加()就会报错:

function f1(){
    alert("这是一个函数");
}()

平时我们可能对括号来调用匿名函数的方式更习惯:

(function(){alert("这是一个匿名函数")})()

或者:

(function(){alert("这是一个匿名函数")}())

当我们使用()时,它将一个函数声明转化成了一个表达式,解析器不再以函数声明的方式处理函数,而是作为一个函数表达式处理,任何消除函数声明和函数表达式间歧义的方法,都可以被解析器正确识别
比如下面这些类型都是可以的

!function(){alert("这是一个匿名函数")}()
+function(){alert("这是一个匿名函数")}()
-function(){alert("这是一个匿名函数")}()
~function(){alert("这是一个匿名函数")}()

跑得慢,听到的是骂声; 跑得快,听到的就只是风声


相关文章

网友评论

      本文标题:javascript里function之前加上感叹号'!

      本文链接:https://www.haomeiwen.com/subject/cfpqkqtx.html