當前位置:
首頁 > 最新 > 面試題(6)-eval()大揭秘

面試題(6)-eval()大揭秘

大師兄

讀完需要

3

分鐘

速讀僅需1分鐘

最近看了阿里的面試,感受就是「革命尚未成功,同志還需努力」。

考察知識點不僅細而且很基礎,一句話就是:認真對待技術,對待基礎。不要為了一味追求技術棧,越跑越遠。其實回過頭你也不過是在原地打轉。

知其然知其所以然,欲速則不達。javascript為主線,某一個框架為輔。慢慢打磨足以。

這題目的看起來比較簡單,但是總感覺有沒有那麼簡單,確實是這樣子。所以回答這個題目要從不同的角度去回答。首先回答清楚它是幹什麼的有什麼用,然後在談談它對作用域的影響,然後就是執行效率的問題,最後談談eval()的其它作用。這樣答下來自己都覺得滿意了吧!

eval()的作用

一句話就是把字元串參數解析成js代碼並運行,並返回執行的結果;

eval("2+3");//執行加運算,並返回運算值。

eval("varage=10");//聲明一個age變數

eval的作用域

說明作用域在它所有的範圍內容有效

示例2:

functiona(){

window.eval("var x=1");// 等效於window.x=1;定義了全局變數

console.log(x);//輸出1

}

a();

console.log(x);//輸出1

這段代碼悲劇了?在IE8及IE8一下的版本就不支持了。

解決方法:

functiona(){

if(window.execScript){// 支持IE8及以下的版本

window.execScript("var x=1");

}

else{//常用的瀏覽器都支持

window.eval("var x=1");

}

console.log(x);

}

a();

console.log(x);

注意事項:

應該避免使用eval,不安全,非常耗性能(2次,一次解析成js語句,一次執行)。

其它作用:

由JSON字元串轉換為JSON對象的時候可以用eval,例如:

varjson="";

varjsonObj=eval("("+json+")");

console.log(jsonObj);

我是見過有人這麼做過。有人還用eval()進行字元串的拼接。但是平時我想你們不會用到,或者說盡量少用。

下期預告

this對象的理解

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 web前端開發大師兄 的精彩文章:

TAG:web前端開發大師兄 |

您可能感興趣

Swift面試題(1)
2018年最常見的Python面試題&答案(中篇)
2018年最常見的Python面試題&答案(上篇)
68道Spring面試題和答案
30道Spring面試題和答案
Hibernate面試題大全
關於 ArrayList 的 5 道面試題
Python 經典面試題 21 道
Python經典面試題21道
在 GitHub 上收穫 6519顆Star 的 Python 面試題資源,到底有多牛?
Tomcat+Servlet面試題都在這裡
前端面試題:JS中的let和var的區別
2019前端框架面試題 —— Round one
Python 爬蟲面試題 170 道
「Spring 全家桶」70 道高頻面試題
2019 Android 高級面試題總結
Android面試題推薦
Linux大牛分享的7道經典面試題和秒收 offer 的技巧
300道Python面試題,備戰春招!
最常見的 35個Python 面試題及答案