js函数前加感叹号和分号作用

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js函数前加感叹号和分号作用相关的知识,希望对你有一定的参考价值。

函数声明方式有两种:

1,    function demo(){}  //声明式定义函数
2,     var demo=function(){} //函数赋值表达式定义函数

  

我们通常这样调用函数 demo()。

但如果我们为一个“定义函数”末尾加上(),解析器是无法理解的。

如果将函数体部分用()包裹起来就可以运行并且解析器是不报错的:

(function() {})()  //调用匿名函数
但在前面加上一个布尔运算符(只多了一个感叹号),就是表达式了,将执行后面的代码,也就合法实现调用
!function() {}()

 在前面加上~+-等一元操作符也可以。。其实还有好几种符合都可以保证匿名函数声明完就立即执行

我们都知道分号是为了和前面的代码隔开,js可以用换行分隔代码,但是合并压缩多个js文件之后,换行符一般会被删掉,所以连在一起可能会出错,加上分号就保险了。

你看到的感叹号,一般是在压缩过的js文件里面,因为在匿名函数调用的时候,通常我们都是用:
(function(){})() 的形式,但也可以使用另一种形式:!function(){}() 前面的!号可以换成-+~等等一元操作符,从而省下了1字节。
 

 





以上是关于js函数前加感叹号和分号作用的主要内容,如果未能解决你的问题,请参考以下文章

js 前加分号和感叹号的含义

Javascript中的感叹号和函数function

JS高阶---语句分号相关

自执行函数前面的分号(;)

es6解构中括号前加分号

js中(function(){xxx})();写法解析以及function与!感叹号