简单了解JS自执行函数

1、常见的function写法如下:

#1 函数表达式
var fn = functio(){}

#2函数声明
function fn(){}

#3匿名函数
function(){}

2、自执行函数

自执行函数也叫立即调用函数。
在函数体后面加括号就能立即调用,则这个函数必须是函数表达式,不能是函数声明。

#括号
(function(arg){
    console.log(arg)
})(1)  //输出1

#叹号
!function(arg){
    console.log(arg)
})(1)  //输出1

#加号
+function(arg){
    console.log(arg)
})(1)  //输出1

#减号
-function(arg){
    console.log(arg)
})(1)  //输出1

因为 + -是js的运算符,所以写括号的形式最为保险。

3、有什么用?

比如让网页根据用户使用的设备来判断让用户浏览pc页面还是手机端页面。

(function(){
    if(用户是手机){
        window.location = "手机.html";
    }else{
        return false;
    };
})()

但是你可能会说我可以用window.onload = function来做。
但window.onload = function 不能重复使用,同时存在多个的时候,就只执行一个。如下:

window.onload = function(){
    console.log(1);
};
window.onload = function(){
    console.log(2);
};
window.onload = function(){
    console.log(3);
}; //只输出3

但是自执行函数就没有这个问题:如下:

(function(){
    console.log(1)
})();
(function(){
    console.log(2)
})();
(function(){
    console.log(3)
})(); //输出 1 2 3

你可能感兴趣的:(简单了解JS自执行函数)