JS嚴(yán)格模式原理與用法實(shí)例分析
本文實(shí)例講述了JS嚴(yán)格模式原理與用法。分享給大家供大家參考,具體如下:
使用 'use strict' 指令'use strict' 指令在 JavaScript 1.8.5 (ECMAScript5) 中新增。
它不是一條語(yǔ)句,但是是一個(gè)字面量表達(dá)式,在 JavaScript 舊版本中會(huì)被忽略。
支持嚴(yán)格模式的瀏覽器:
Internet Explorer 10 +、 Firefox 4+ Chrome 13+、 Safari 5.1+、 Opera 12+。
嚴(yán)格模式聲明嚴(yán)格模式通過(guò)在腳本或函數(shù)的頭部添加 'use strict'; 表達(dá)式來(lái)聲明。
實(shí)例中我們可以在瀏覽器按下 F12 (或點(diǎn)擊'工具>更多工具>開發(fā)者工具') 開啟調(diào)試模式,查看報(bào)錯(cuò)信息。
為什么使用嚴(yán)格模式: 消除Javascript語(yǔ)法的一些不合理、不嚴(yán)謹(jǐn)之處,減少一些怪異行為; 消除代碼運(yùn)行的一些不安全之處,保證代碼運(yùn)行的安全; 提高編譯器效率,增加運(yùn)行速度; 為未來(lái)新版本的Javascript做好鋪墊。嚴(yán)格模式的限制1、不允許使用未聲明的變量;
2、不允許刪除變量或?qū)ο螅?/p>
3、不允許刪除函數(shù);
4、不允許變量重名;
5、不允許使用八進(jìn)制;
6、不允許使用轉(zhuǎn)義字符;
7、不允許對(duì)只讀屬性賦值;
8、不允許對(duì)一個(gè)使用getter方法讀取的屬性進(jìn)行賦值;
9、不允許刪除一個(gè)不允許刪除的屬性;
10、變量名不能使用’eval’字符串;
11、變量名不能使用’arguments’字符串;
12、不允許使用以下這種語(yǔ)句:
<script>'use strict';with (Math){x = cos(2)}; // 報(bào)錯(cuò)</script>
13、由于一些安全原因,在作用域 eval() 創(chuàng)建的變量不能被調(diào)用:
<script>'use strict';eval ('var x = 2');alert (x);// 報(bào)錯(cuò)</script>
14、禁止this關(guān)鍵字指向全局對(duì)象。
function f(){ return !this;} // 返回false,因?yàn)?this'指向全局對(duì)象,'!this'就是falsefunction f(){ 'use strict'; return !this;} // 返回true,因?yàn)閲?yán)格模式下,this的值為undefined,所以'!this'為true。
感興趣的朋友還可以使用本站在線HTML/CSS/JavaScript代碼運(yùn)行工具:http://tools.jb51.net/code/HtmlJsRun測(cè)試上述代碼運(yùn)行結(jié)果。
更多關(guān)于JavaScript相關(guān)內(nèi)容還可查看本站專題:《javascript面向?qū)ο笕腴T教程》、《JavaScript錯(cuò)誤與調(diào)試技巧總結(jié)》、《JavaScript數(shù)據(jù)結(jié)構(gòu)與算法技巧總結(jié)》、《JavaScript遍歷算法與技巧總結(jié)》及《JavaScript數(shù)學(xué)運(yùn)算用法總結(jié)》
希望本文所述對(duì)大家JavaScript程序設(shè)計(jì)有所幫助。
相關(guān)文章:
1. Python sorted排序方法如何實(shí)現(xiàn)2. Python基于requests實(shí)現(xiàn)模擬上傳文件3. ASP.NET MVC實(shí)現(xiàn)橫向展示購(gòu)物車4. windows服務(wù)器使用IIS時(shí)thinkphp搜索中文無(wú)效問(wèn)題5. python利用opencv實(shí)現(xiàn)顏色檢測(cè)6. Python文本文件的合并操作方法代碼實(shí)例7. Python 中如何使用 virtualenv 管理虛擬環(huán)境8. 通過(guò)CSS數(shù)學(xué)函數(shù)實(shí)現(xiàn)動(dòng)畫特效9. asp讀取xml文件和記數(shù)10. Python獲取B站粉絲數(shù)的示例代碼
