JavaScript 嚴格模式(use strict)

use strict" 指令在 JavaScript 1.8.5 (ECMAScript5) 中新增。

它不是一條語句,但是是一個字面量表達式,在 JavaScript 舊版本中會被忽略。

"use strict" 的目的是指定代碼在嚴格條件下執行。

嚴格模式下你不能使用未聲明的變量。

  1. 不使用未聲明的變量
  2. 不允許刪除變量或對象
  3. 不允許刪除函數
  4. 不允許變量重名
  5. 不允許使用8進制
  6. 不允許使用轉義字符
  7. 不允許對只讀屬性賦值
  8. 不允許對一個使用getter方法讀取的屬性進行賦值
"use strict";
var obj = {get x() {return 0} };

obj.x = 3.14;            // 報錯
  1. 不允許刪除一個不允許刪除的屬性
  2. 變量名不能使用 "eval" 字符串,不允許arguments做變量名
  3. 由于一些安全原因,在作用域 eval() 創建的變量不能被調用:
"use strict";
eval ("var x = 2");
alert (x);               // 報錯
  1. 禁止this關鍵字指向全局對象。
function f(){
    return !this;
} 
// 返回false,因為"this"指向全局對象,"!this"就是false

function f(){ 
    "use strict";
    return !this;
} 
// 返回true,因為嚴格模式下,this的值為undefined,所以"!this"為true。

保留關鍵字
為了向將來Javascript的新版本過渡,嚴格模式新增了一些保留關鍵字:

implements
interface
let
package
private
protected
public
static
yield
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 你是否每天都在后悔昨天有多少事沒做...... 是否每一天又在計劃新的計劃...... 第二天又因為各種各樣的事把...
    辣條冰棍閱讀 1,077評論 7 25
  • 一說到孤獨,我們容易聯想起那是形容一個人,性格偏激,不愛社交,穿著邋遢,帶個眼鏡,有點變態。 孤獨,是一種狀態 ,...
    三風mickjoust閱讀 3,169評論 8 33
  • 在等。 雨來,等雨停,行走,等到達,生活,等遇見,活著,等死亡。 一切的不心甘情愿和心甘情愿的忍耐似乎都是在等某個...
    趙明亮閱讀 357評論 0 2
  • 喜優摻半閱讀 165評論 0 0