JavaScript之eval函數

定義:eval函數可計算某個字符串,並執行其中的JavaScript代碼
語法:eval(string):string是必須的,要計算的字符串,其中含有要計算的JavaScript表達式或要執行的語句,返回通過計算string的值
注意點:覆蓋eval屬性或者將eval()方法賦予另一個屬性,並通過該屬性調用它,則ECMAScript實現允許拋出一個EvalError異常

以上是W3School中對eval函數的解釋,在之前我使用eval主要是在獲取後臺傳到前臺的數據之後將json string轉爲js對象,後來使用JSON.parse(JSON對象解析),便再也沒有接觸eval,也就沒有去深究eval的原理與作用。昨天學習執行上下文的時候,在湯姆大叔的博客中發現了eval不一樣的一面。

eval有個概念:調用上下文。它使用了調用它的變量作用於環境,如果一個函數定義了局部變量x,然後調用了eval(“x”),將會返回局部變量的值,如果調eval(“x=1”),會改變局部變量的值,同樣它可以用來聲明一個新的局部變量,聲明一個局部函數。

eval不在函數內部,調用上下文後,會把變量放在全局上下文中;
eval在函數內部,調用上下文後,會把變量放在局部上下文中,而這個局部上下文會隨着函數退出而銷燬。

發佈了44 篇原創文章 · 獲贊 28 · 訪問量 6萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章