昨天去笔试的时候考了这道题:
var bo = 10;
function foo() {
console.log(bo);
}
foo();
(function() {
var bo = 20;
foo();
})()
(function (func) {
var bo = 30;
func();
})(foo)
我回来的时候运行了一下,最后一个function发生了一个错误Uncaught TypeError: (intermediate value)(intermediate value)(...) is not a function at <anonymous>:12:1,这是什么意思?
当我单独运行最后一个函数的时候,又不会出错
var bo = 10;
function foo() {
console.log(bo);
}
(function (func) {
var bo = 30;
func();
})(foo)
加个逗号就不会报错了...应该是()无法自动识别为一个语句不会自动加分号