在看红宝书写的eval()不太理解,书上写的通过eval()执行的代码属于该调用所在的上下文,被执行的代码与该上下文拥有相同的作用域链
。其中例子
eval("function sayHi() { console.log('hi'); }");
sayHi()
可以执行,理解成
function sayHi() { console.log('hi'); };
sayHi()
但是另一个例子却报错了,如下
eval("let msg = 'lll'");
console.log(msg);
这个例子我的理解是如下代码,应该打印成功才对呀?
let msg = 'lll';
console.log(msg);