!function(a){ //'use strict'; console.log(a.x); arguments[0].x=100; console.log(a.x);}({x:1});
前面的! 有什么作用呢?却掉后会抛SynaxError 求解释
function是函数声明,在后面加()表示立即执行,由于JavaScript中function的{}后接上()会有语法错误,所以需要把function先变成函数表达式,!就是把function变成函数表达式