【学习】js学习笔记:内置顶层函数eval()的兼容用法

时间:2021-01-03 23:55:37

今天学了一个内置顶层函数,eval();其作用是将字符串转换成javascript命令执行,但必须符合语法,否则会报错。

如果写成window.eval(),则其定义的变量会在全局生效。

但是,在IE中,(测试为IE8及以下), window.eval()定义的变量不能在全局作用域生效,而ie有自己的一个函数为window.execScript()可以做到同样的效果。于是,在实际应用中,需要一个判断的函数,分别使用。如下:

function evals(str){

if(typeof str!="string"){//如果参数的类型不等于字符串类型

return;

}

if(window.execScript){

window.execScript(str);

}

else{

window.eval(str);

}

}

function aa(){

evals("var a='弹出内容'");

alert(a);

}

aa();

alert(a);