這篇文章給大家分享的是有關(guān)在javascript中使用嚴(yán)格模式的方法的內(nèi)容。小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考。一起跟隨小編過來看看吧。
嚴(yán)格模式是什么意思?有什么用?
嚴(yán)格模式是ECMAScript 5中的一項(xiàng)新功能,它允許我們將程序或函數(shù)置于“嚴(yán)格”操作上下文中。這種嚴(yán)格的上下文可以防止某些操作被采取并引發(fā)更多異常。
我們需要聲明“use strict”; 指示瀏覽器使用嚴(yán)格模式,這是一種簡化且更安全的JavaScript功能集。
使用嚴(yán)格模式的好處:對普通的JavaScript語義進(jìn)行了一些改變。
1、嚴(yán)格模式通過將其更改為拋出錯(cuò)誤來消除一些JavaScript無提示錯(cuò)誤。
2、嚴(yán)格模式修復(fù)了使JavaScript引擎難以執(zhí)行優(yōu)化的錯(cuò)誤:嚴(yán)格模式代碼有時(shí)可以比非嚴(yán)格模式的相同代碼運(yùn)行得更快。
3、嚴(yán)格模式禁止在ECMAScript的未來版本中定義某些語法。
4、當(dāng)采取相對“不安全”的操作(例如獲取對全局對象的訪問權(quán)限)時(shí),它會阻止或拋出錯(cuò)誤。
5、它會禁用令人困惑或經(jīng)過深思熟慮的功能。
6、嚴(yán)格模式可以更輕松地編寫“安全”JavaScript代碼。
如何使用嚴(yán)格模式?
嚴(yán)格模式可以用兩種方式來使用 :可以在整個(gè)腳本的全局范圍中使用,也可以應(yīng)用于單個(gè)函數(shù)。
注:嚴(yán)格模式不適用于{}括號中的塊語句。
在整個(gè)腳本的全局范圍中使用
調(diào)用嚴(yán)格模式,請?jiān)谌魏纹渌愂鲋拜斎氪_切的語句“use strict”; (或'use strict';)。
//全腳本嚴(yán)格模式語法 "use strict"; var v ="嚴(yán)格模式腳本!";
注意:此語法有一個(gè)流程:無法盲目連接非沖突腳本??紤]將嚴(yán)格模式腳本與非嚴(yán)格模式腳本連接起來:整個(gè)連接看起來很嚴(yán)格!反之亦然:非嚴(yán)格加嚴(yán)格,會看起來非嚴(yán)格。嚴(yán)格模式腳本相互連接很好,并且非嚴(yán)格模式腳本的連接很好。只連接嚴(yán)格和非嚴(yán)格的腳本是有問題的。因此,建議您逐個(gè)功能地啟用嚴(yán)格模式(至少在過渡期間)。
使用函數(shù)調(diào)用嚴(yán)格模式
要在函數(shù)中調(diào)用嚴(yán)格模式,同樣請?jiān)谌魏纹渌Z句之前在函數(shù)體中將確切的語句設(shè)置為“use strict”; (或'use strict';)。
function strict(){ //功能級嚴(yán)格模式語法 "use strict"; function nested(){ return '在Javascript中'; } return "嚴(yán)格模式函數(shù)!"+ nested(); } function notStrict(){ return "非嚴(yán)格模式"; }
使用嚴(yán)格模式的示例:
1、在普通的JavaScript中,錯(cuò)誤輸入變量名稱會創(chuàng)建一個(gè)新的全局變量。在嚴(yán)格模式下,這將引發(fā)錯(cuò)誤,從而無法意外創(chuàng)建全局變量
2、使用嚴(yán)格模式,不允許在不聲明變量的情況下使用變量
//不允許使用變量而不聲明它: "use strict"; x = 3.14; //這會導(dǎo)致錯(cuò)誤
3、對象也是變量。使用嚴(yán)格模式,不允許使用對象而不聲明它:
//不允許使用對象而不聲明它: "use strict" x = {p1:10,p2:20}; //這會導(dǎo)致錯(cuò)誤
4、不允許刪除變量(或?qū)ο螅┖秃瘮?shù),也不允許刪除功能
"use strict"; //不允許刪除變量(或?qū)ο螅┖秃瘮?shù) var x = 3.14; delete x; //這會導(dǎo)致錯(cuò)誤 //也不允許刪除功能 function x(p1,p2){}; delete x; //這會導(dǎo)致錯(cuò)誤
5、不允許復(fù)制參數(shù)名稱
“嚴(yán)格使用”; 函數(shù)x(p1,p1){}; //這會導(dǎo)致錯(cuò)誤
6、不允許使用八進(jìn)制數(shù)字文字
"use strict"; var x = 010; //這會導(dǎo)致錯(cuò)誤
7、不允許使用轉(zhuǎn)義字符
"use strict"; var x = \ 010; //這會導(dǎo)致錯(cuò)誤
8、不允許寫入只讀屬性
"use strict"; var obj = {}; Object.defineProperty(obj,“x”,{ value:0,writable:false }); obj.x = 3.14; //這會導(dǎo)致錯(cuò)誤
9、不允許寫入get-only屬性
"use strict"; var obj = { get x(){return 0} }; obj.x = 3.14; //這會導(dǎo)致錯(cuò)誤
10、不允許刪除不可刪除的屬性
"use strict"; delete Object.prototype; //這會導(dǎo)致錯(cuò)誤
11、字符串“eval”不能用作變量
"use strict"; var eval = 3.14; //這會導(dǎo)致錯(cuò)誤
12、字符串“arguments”不能用作變量
"use strict"; var arguments = 3.14; //這會導(dǎo)致錯(cuò)誤
13、不允許使用with語句
"use strict"; with(Math){ x = cos(2) }; //這會導(dǎo)致錯(cuò)誤
14、出于安全原因,不允許eval()在調(diào)用它的范圍內(nèi)創(chuàng)建變量
"use strict"; eval(“var x = 2”); alert(x); //這會導(dǎo)致錯(cuò)誤
感謝各位的閱讀!關(guān)于在javascript中使用嚴(yán)格模式的方法就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,讓大家可以學(xué)到更多知識。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!
網(wǎng)站題目:在javascript中使用嚴(yán)格模式的方法-創(chuàng)新互聯(lián)
瀏覽路徑:http://jinyejixie.com/article46/dphjeg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供服務(wù)器托管、自適應(yīng)網(wǎng)站、網(wǎng)站設(shè)計(jì)公司、品牌網(wǎng)站建設(shè)、動態(tài)網(wǎng)站、虛擬主機(jī)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容