只有表达式才能被执行,函数声明不能执行,必须调用

function(){...}//函数声明

(function(){...}())//表达式

 

只有表达式才能被执行符号执行,下面的声明是不能直接调用的;

function test(){
    var a=123;
}();//出错,函数声明不能被直接调用
test();


//能被函数执行的表达式,名字被自动忽略,test()找不到了
var test=function(){
    console.log('a')
}()


//传参
function test(a,b,c,d){
    console.log(a+b+c+d)
}(1,2,3,4)

 

功能:只需要执行一次,初始化函数

var num = (function(a,b,c){
    console.log(a)
    var d=a+b+c*2-2
    return d;
}(1,2,c))//w3c建议

第二种引用方法

(function(){})()

其它数学运算符号转换

//+ - ! && ||都可以转成表达式
+function test() {
    // body...
}();