ES5中引入了"嚴格模式".同正常模式,或者說寬松/懶惰模式相比,嚴格模式在行為上有很多不同.其中一個不同的行為是嚴格模式禁止自動或隱式地創(chuàng)建全局變量.因此,在嚴格模式中LHS(左查找)查詢失敗時,并不會創(chuàng)建返回一個全局變量,引起會拋出同RHS查詢失敗時類似的ReferenceError異常.
接下來,如果RHS查詢找到了一個變量,但是你嘗試對這個變量的值進行不合理的操作,比如試圖對一個非函數類型的值進行函數調用,或者引用null或者undefined類型的值中的屬性,那么引擎會拋出另外一個類型的異常,叫做TypeError.
ReferenceError同作用域判別失敗相關,而TyperError則代表作用域判別成功了,但是對結果的操作時非法或不合理的.
reference 英 ['ref(?)r(?)ns] 美 ['r?fr?ns]
n. 參考唠倦,參照踩验;涉及,提及;參考書目器钟;介紹信;證明書
vi. 引用
vt. 引用