javascript如何使用嚴格模式?本篇文章就給大家簡單介紹javascript中的嚴格模式是什麼意思?如何使用?有一定的參考價值,有需要的朋友可以參考一下,希望對你們有幫助。
嚴格模式是什麼意思?有什麼用?
嚴格模式是ECMAScript 5中的新功能,它允許我們將程式或函數置於「嚴格」操作上下文中。這種嚴格的上下文可以防止某些操作被採取並引發更多異常。
我們需要宣告「use strict」; 指示瀏覽器使用嚴格模式,這是一個簡化且更安全的JavaScript功能集。
使用嚴格模式的好處:對普通的JavaScript語意做了一些改變。
1、嚴格模式透過將其變更為拋出錯誤來消除一些JavaScript無提示錯誤。
2、嚴格模式修正了讓JavaScript引擎難以執行最佳化的錯誤:嚴格模式程式碼有時可以比非嚴格模式的相同程式碼運行得更快。
3、嚴格模式禁止在ECMAScript的未來版本中定義某些語法。
4、當採取相對「不安全」的操作(例如取得對全域物件的存取權限)時,它會阻止或拋出錯誤。
5、它會停用令人困惑或經過深思熟慮的功能。
6、嚴格模式可以更輕鬆地寫出「安全性」JavaScript程式碼。
如何使用嚴格模式?
嚴格模式可以用兩種方式來使用 :可以在整個腳本的全域範圍中使用,也可以套用到單一函數。
註:嚴格模式不適用於{}括號中的區塊語句。
在整個腳本的全域範圍中使用
呼叫嚴格模式,請在任何其他陳述之前輸入確切的語句「use strict」; (或'use strict ';)。
//全脚本严格模式语法 "use strict"; var v ="严格模式脚本!";
注意:此語法有一個流程:無法盲目連接非衝突腳本。考慮將嚴格模式腳本與非嚴格模式腳本連接起來:整個連接看起來很嚴格!反之亦然:非嚴格加嚴格,看起來會非嚴格。嚴格模式腳本相互連接很好,而且非嚴格模式腳本的連接很好。只連接嚴格和非嚴格的腳本是有問題的。因此,建議您逐一功能地啟用嚴格模式(至少在過渡期間)。
使用函數呼叫嚴格模式
要在函數中呼叫嚴格模式,同樣請在任何其他語句之前在函數體中將確切的語句設定為「use strict”; (或'use strict';)。
function strict(){ //功能级严格模式语法 "use strict"; function nested(){ return '在Javascript中'; } return "严格模式函数!"+ nested(); } function notStrict(){ return "非严格模式"; }
使用嚴格模式的範例:
1、在普通的JavaScript中,錯誤輸入變數名稱會建立一個新的全域變量。在嚴格模式下,這將引發錯誤,因此無法意外建立全域變數
2、使用嚴格模式,不允許在不宣告變數的情況下使用變數
//不允许使用变量而不声明它: "use strict"; x = 3.14; //这会导致错误
3、物件也是變數。使用嚴格模式,不允許使用物件而不宣告它:
//不允许使用对象而不声明它: "use strict" x = {p1:10,p2:20}; //这会导致错误
4、不允許刪除變數(或物件)和函數,也不允許刪除功能
"use strict"; //不允许删除变量(或对象)和函数 var x = 3.14; delete x; //这会导致错误 //也不允许删除功能 function x(p1,p2){}; delete x; //这会导致错误
5、不允許複製參數名稱
“严格使用”; 函数x(p1,p1){}; //这会导致错误
6、不允許使用八進位數字文字
"use strict"; var x = 010; //这会导致错误
7、不允許使用轉義字元
"use strict"; var x = \ 010; //这会导致错误
8、不允許寫入唯讀屬性
"use strict"; var obj = {}; Object.defineProperty(obj,“x”,{ value:0,writable:false }); obj.x = 3.14; //这会导致错误
9、不允許寫入get-only屬性
"use strict"; var obj = { get x(){return 0} }; obj.x = 3.14; //这会导致错误
10、不允許刪除不可刪除的屬性
"use strict"; delete Object.prototype; //这会导致错误
11、字串「eval」不能用作變數
"use strict"; var eval = 3.14; //这会导致错误
12、字串「arguments」不能用作變數
"use strict"; var arguments = 3.14; //这会导致错误
13、不允許使用with語句
"use strict"; with(Math){ x = cos(2) }; //这会导致错误
14、出於安全性原因,不允許eval()在呼叫它的範圍內創建變數
"use strict"; eval(“var x = 2”); alert(x); //这会导致错误
總結:以上就是本篇文章的全部內容,希望能對大家的學習有所幫助。想要更多相關影片教學,可訪問:JavaScript教學!
以上是在javascript中如何使用嚴格模式?使用範例的詳細內容。更多資訊請關注PHP中文網其他相關文章!