eval()的作用
把字符串參數解析成JS代碼並運行,並返回執行的結果
例如:
eval("2+3")
//執行加運算,並返回運算值
eval("var age=10")
//聲明一個age變量
eval的作用域
function a(){
eval("var x = 1");//在a函數內有用
console.log(x);//輸出1;
}
a();
console.log(x);//錯誤,x沒有定義
說明:作用域在它所在的範圍內有效
eval()在IE8及以下版本的兼容性問題
function a(){
if(window.execScript){//支持IE8及以下的版本
window.execScript("var x = 1");//加在window上的就是全局的
}else{
window.eval("var x = 1");
}
console.log(x);
}
a();//輸出1;
console.log(x);輸出1;
注意事項:
應該避免使用eval,不安全,非常耗性能(2次,一次解析成js語句,一次執行)。
其他作用:
將JSON字符串轉換爲JSON對象的時候可以用eval,例如:
var json = "{name:'張三',age:30}";
var jsonObj = eval("("+json+")");
console.log(jsonObj);
輸出的結果是:
{name:“張三”,age:30}