Web前端面試指導 三十七 eval是做什麼的

2021-09-17 07:12:46 字數 1905 閱讀 3295

題目點評

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

eval()的作用

把字串引數解析成js**並執行,並返回執行的結果;

例如:

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

eval("varage=10");//宣告乙個age變數

eval的作用域

functiona()a();console.log(x);//錯誤 x沒有定義
說明作用域在它所有的範圍內容有效

示例2:

functiona()a();console.log(x);//輸出1
這段**悲劇了?在ie8及ie8一下的版本就不支援了。 

解決方法:

functiona() else console.log(x);}a();console.log(x);
注意事項

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

其它作用

由json字串轉換為json物件的時候可以用eval,例如:

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

eval()的作用

把字串引數解析成js**並執行,並返回執行的結果;

例如:

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

eval("varage=10");//宣告乙個age變數

eval的作用域

functiona()a();console.log(x);//錯誤 x沒有定義
說明作用域在它所有的範圍內容有效

示例2:

functiona()a();console.log(x);//輸出1
這段**悲劇了?在ie8及ie8一下的版本就不支援了。 

解決方法:

functiona() else console.log(x);}a();console.log(x);
注意事項

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

其它作用

由json字串轉換為json物件的時候可以用eval,例如:

varjson="";varjsonobj=eval("("+json+")");console.log(jsonobj);

web前端面試總結

因為最近在找工作,所以避免不了的就是面試,關於面試的話,其實不僅僅只是知道做面試題這麼簡單,因為我們要從公司的角度考慮問題。其實初級的程式設計師是最好塑造的,我的建議是不管你的薪水有多低,一定要以學習新知識為己任,多去嘗試不同方法,去適應不同的環境,做人做事都應該有乙個全新的認識。因為畢竟是工作,所...

web前端面試總結

1 meta中的reffer 2 img中的src無法載入 1 盒模型 負邊距布局 四個子元素的寬度加上三列間隔的寬度 聖杯布局 雙飛翼布局,元素雖然在後面,但是可以通過負邊距顯示在前面 負邊距絕對定位居中 2 webkit text size adjust 3 文字截斷處理 4 flex布局 5 ...

web前端面試(1)

1 https協議需要到ca申請證書,一般免費證書較少,因而需要一定費用。2 http是超文字傳輸協議,資訊是明文傳輸,https則是具有安全性的ssl加密傳輸協議。3 http和https使用的是完全不同的連線方式,用的埠也不一樣,前者是80,後者是443。4 http的連線很簡單,是無狀態的 h...