!function(){}()
今天在看面试题的时候偶然看到~function(){/**/}这样的函数,却不知道什么意思,查看了网上的介绍,发现了其实是自调用的意思。
~function(){
console.log(1);
}();
//相当于
(function(){})();
根据我个人的理解,意思就是一元运算符可以运算后面的表达式。而后面的表达式是一个函数的自调用的情况。那么,这一次的运算将把后面的表达式的运算一遍。就好像小时候学习数学一样,!在数学里是阶乘的意思,那么
!(1+2+3)是不是需要把1+2+3的结果求出来结果再操作呢?
当然,其他的一元操作符也可以有相同的效果,
!function(){}();
~function(){}();
+function(){}();
-function(){}();
(function(){})();
题外话:
我发现有的程序员是不习惯写分号结尾的,那么你要在写function开头的时候 要写;function(){};