执行这个脚本:tmp.js,包含:
var parameters = {};
(1,eval)("var parameters = {a:1}");
(1,eval)(console.log(parameters));
node tmp.js
Run Code Online (Sandbox Code Playgroud)
生产:
{}
Run Code Online (Sandbox Code Playgroud)
如果我们注释掉第一个语句,并再次执行脚本,我们获得:
{ a: 1 }
Run Code Online (Sandbox Code Playgroud)
全局范围包含具有相同值的完全相同的变量,那么为什么console.log显示不同的值?