昨天去笔试的时候考了这道题:
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
当我单独运行最后一个函数的时候,又不会出错
var bo = 10; function foo() { console.log(bo); } (function (func) { var bo = 30; func(); })(foo)
加个逗号就不会报错了...应该是()无法自动识别为一个语句不会自动加分号