JavaScript強化教程——嚴格模式

本文爲 H5EDU 機構官方 HTML5培訓 教程,主要介紹:JavaScript強化教程 —— 嚴格模式
 

avaScript 嚴格模式(use strict)
JavaScript 嚴格模式(strict mode)即在嚴格的條件下運行。
使用 "use strict" 指令
"use strict" 指令在 JavaScript 1.8.5 (ECMAScript5) 中新增。
它不是一條語句,但是是一個字面量表達式,在 JavaScript 舊版本中會被忽略。
"use strict" 的目的是指定代碼在嚴格條件下執行。
嚴格模式下你不能使用未聲明的變量。

嚴格模式的限制
不允許使用未聲明的變量:
"use strict";
x = 3.14;                // 報錯 (x 未定義)

Note	對象也是一個變量。

"use strict";
x = {p1:10, p2:20};      // 報錯 (x 未定義)

不允許刪除變量或對象。
"use strict";
var x = 3.14;
delete x;                // 報錯

不允許刪除函數。
"use strict";
function x(p1, p2) {}; 
delete x;                // 報錯 

不允許變量重名:
"use strict";
function x(p1, p1) {};   // 報錯

不允許使用八進制:
"use strict";
var x = 010;             // 報錯

不允許使用轉義字符:
"use strict";
var x = \010;            // 報錯

不允許對只讀屬性賦值:
"use strict";
var obj = {};
Object.defineProperty(obj, "x", {value:0, writable:false});

obj.x = 3.14;            // 報錯

不允許對一個使用getter方法讀取的屬性進行賦值
"use strict";
var obj = {get x() {return 0} };

obj.x = 3.14;            // 報錯

不允許刪除一個不允許刪除的屬性:
"use strict";
delete Object.prototype; // 報錯

變量名不能使用 "eval" 字符串:
"use strict";
var eval = 3.14;         // 報錯

變量名不能使用 "arguments" 字符串:
"use strict";
var arguments = 3.14;    // 報錯

不允許使用以下這種語句:
"use strict";
with (Math){x = cos(2)}; // 報錯

由於一些安全原因,在作用域 eval() 創建的變量不能被調用:
"use strict";
eval ("var x = 2");
alert (x);

點擊進入JS強化教程

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章