es6 的模組自動採用嚴格模式,不管你有沒有在模組頭部加上"use strict";。
嚴格模式主要有以下限制。
變數必須宣告後再使用
函式的引數不能有同名屬性,否則報錯
不能使用with語句
不能對唯讀屬性賦值,否則報錯
不能使用字首0表示八進位制數,否則報錯
不能刪除不可刪除的屬性,否則報錯
不能刪除變數delete prop,會報錯,只能刪除屬性delete global[prop]
eval不會在它的外層作用域引入變數
eval和arguments不能被重新賦值
arguments不會自動反映函式引數的變化
不能使用arguments.callee
不能使用arguments.caller
禁止this指向全域性物件
不能使用fn.caller和fn.arguments獲取函式呼叫的堆疊
增加了保留字(比如protected、static和inte***ce)
js 嚴格模式
基於es3.0和es5.0新增的方法使用的,es3.0和es5.0產生矛盾的地方在嚴格模式下就是採用的es5.0,否則js解析採用es3.0 注意 use strict 要放在邏輯的最頂端 的最頂端,有作用範圍,在函式最頂端就是當前函式採取嚴格模式 嚴格模式 1.不允許用with with可以改變作...
js 嚴格模式
簡單整理一下js嚴格模式下的變化。整理 mdn 部分 測試環境 chrome 76.0.3809.132 use strict mistypedvaraible 17 這一行 就會丟擲 referenceerror。不可以不寫宣告 主流瀏覽器現在實現了嚴格模式。但是不要盲目的依賴它,因為市場上仍然有...
JS 嚴格模式
標誌 use strict 老版本瀏覽器會自動忽略 呼叫 整個檔案呼叫 function 單個函式呼叫 function 語法 行為 嚴格模式下 不宣告的變數賦值的話,會報錯誤 禁止使用with eval作用域只在內部,不再能夠生成全域性變數了 this關鍵字不再指向全域性 建構函式如果忘記new ...