javascript立即执行函数简单介绍

立即执行函数顾名思义就是声明一个函数,并立即执行它。而且执行完就释放控件,找不到引用

立即执行函数写法

(function (形参){  // 写法1(w3c建议)
    xxx    
}(实参))

(function (形参){  // 写法2
    xxx        
})(实参)      

但是个人更习惯用第二种写法,所以这看个人习惯了。

注意!! 只有表达式才能被执行符号()执行,且被执行后忽略函数名

function a(){}() //报错,因为这是函数申明
var test = function a(){}() //可以执行,这是函数表达式,注意被执行后test为undefined 类似于立即执行函数

立即执行函数也是有返回值,如下

//正常情况
(function (a, b, c) {
    var d = a + b + c
    console.log(d)
}(1, 2, 3))

//有返回值情况
var num = (function (a, b, c) {
    var d = a + b + c
    return d
}(1, 2, 3))
console.log(num)  //6

曾经看过这样一道题目,如下

//前面说了,理论上该情况上会报错
function a() {
}() 

//但是如果括号里加参数就不会报错
function a(a, b, c) {
    console.log(a + b + c)
}(1, 2, 3)  //不会报错 也不会执行a函数

//因为如果括号加参数,系统会认为这不是执行符号,这是后会当成两句代码 函数声明和(1, 2, 3)
function a(a, b, c) {
    console.log(a + b +c)
}
(1, 2, 3) 

end !!!

原文地址:https://www.cnblogs.com/lyjfight/p/13336630.html