引子:表达式和语句很基础,但是有时会犯错,比如: function(){}//报错 (function(){})//不报错 function f(x){ return x + 1 }()//报错 function f(x){ return x + 1 }(1)//不报错,为什么返回 1 能明白为什么? 解释: 第一行代码:因为JavaScript 将 function 关键字当作一个 函数声明语句 的开始,而函数声明语句 function 关键字后面应该是 函数名,这里后面跟圆括号,当然会报错.…