求f( )的结果? 答案:1(全局的)
用一个例子来说明下:
如果间接的使用 eval(), 即:通过一个引用来调用eval而不是直接的调用eval。
从ECMAScript 5起它工作在全局作用域而不是局部作用域中
上题中把var e = eval;相当于把e = window.eval,这时e是全局作用域上的,执行的时候回去寻找全局域上的a,所以结果是1。
如果不赋值,直接使用eval('console.log(a)'), 它默认是在本地函数作用域进行,所以是2。
eval()函数的作用:eval() 函数可计算某个字符串,并执行其中的的 JavaScript 代码。