"use strict" 的意義和好處
阿新 • • 發佈:2019-01-28
ES6的模組自動採用嚴格模式,不管你有沒有在模組頭部加上"use strict"
嚴格模式主要有以下限制:
- 變數必須聲明後再使用
- 函式的引數不能有同名屬性,否則報錯
- 不能使用with語句
- 不能對只讀屬性賦值,否則報錯
- 不能使用字首0表示八進位制數,否則報錯
- 不能刪除不可刪除的屬性,否則報錯
- 不能刪除變數delete prop ,會報錯,只能刪除屬性 selete global[prop]
- eval 不會在它的外層作用域引入變數
- eval和arguments不能被重新賦值
- arguments不會自動反映函式引數的變化
- 不能使用arguments.callee
- 不能使用arguments.caller
- 禁止this指向全域性物件
- 不能使用fn.caller和fn.arguments獲取函式呼叫的堆疊
- 增加了保留字(比如protected、static和interface)