eval是做什麼的?(筆試題)

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}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章