javascript嚴格模式下eval()的變化

admin發表於2017-03-31

本章節單獨介紹一下eval()函式在嚴格模式下與在普通模式下的區別和變化。

關於eval()函式的用法和更多嚴格模式的內容可以參閱以下文章:

(1).javascript的eval()方法一章節。

(2).javascript嚴格模式特性簡單介紹一章節。

下面就進入正題,對嚴格模式下eval()函式的變化做一下簡單介紹:

在普通模式下(ES6下又新增了塊級作用域),js具有兩種作用域,一種是全域性作用域,一種是函式作用域。

但是在嚴格模式下,又新增了eval作用域。

在不同模式下eval()語句的作用域取決於它所在的是何種作用域,但是在嚴格模式下,eval()語句本身就形成一個作用域。

看如下程式碼例項:

[JavaScript] 純文字檢視 複製程式碼
"use strict";
var webName = "螞蟻部落";
console.info(eval("var webName = 'softwhy.com'; webName")); //softwhy.com
console.info(webName); //螞蟻部落

特別說明:上面的程式碼建議複製貼上到本地進行測試。


相關文章