eval命令修改了外部变量a的值。由于这个原因,eval有安全风险。->这里安全风险指修改外部变量 而不是声明变量
为了防止这种风险,JavaScript 规定,如果使用严格模式,eval内部声明的变量,不会影响到外部作用域。->这里使用严格模式 并不能防止上文的修改外部变量的风险 与为了防止这种风险矛盾?
也许应该换一个例子? 例如
var a = 1;
eval("var a = 2;")
console.log(a); // 2
说明:
eval命令中声明的变量覆盖了外部变量a的值。由于这个原因,eval有安全风险
eval命令修改了外部变量a的值。由于这个原因,eval有安全风险。->这里安全风险指修改外部变量 而不是声明变量
为了防止这种风险,JavaScript 规定,如果使用严格模式,eval内部声明的变量,不会影响到外部作用域。->这里使用严格模式 并不能防止上文的修改外部变量的风险 与为了防止这种风险矛盾?
也许应该换一个例子? 例如
var a = 1;
eval("var a = 2;")
console.log(a); // 2
说明:
eval命令中声明的变量覆盖了外部变量a的值。由于这个原因,eval有安全风险