JS嚴格模式原理與用法實例分析
本文實例講述了JS嚴格模式原理與用法。分享給大家供大家參考,具體如下:
使用 'use strict' 指令'use strict' 指令在 JavaScript 1.8.5 (ECMAScript5) 中新增。
它不是一條語句,但是是一個字面量表達式,在 JavaScript 舊版本中會被忽略。
支持嚴格模式的瀏覽器:
Internet Explorer 10 +、 Firefox 4+ Chrome 13+、 Safari 5.1+、 Opera 12+。
嚴格模式聲明嚴格模式通過在腳本或函數的頭部添加 'use strict'; 表達式來聲明。
實例中我們可以在瀏覽器按下 F12 (或點擊'工具>更多工具>開發者工具') 開啟調試模式,查看報錯信息。
為什么使用嚴格模式: 消除Javascript語法的一些不合理、不嚴謹之處,減少一些怪異行為; 消除代碼運行的一些不安全之處,保證代碼運行的安全; 提高編譯器效率,增加運行速度; 為未來新版本的Javascript做好鋪墊。嚴格模式的限制1、不允許使用未聲明的變量;
2、不允許刪除變量或對象;
3、不允許刪除函數;
4、不允許變量重名;
5、不允許使用八進制;
6、不允許使用轉義字符;
7、不允許對只讀屬性賦值;
8、不允許對一個使用getter方法讀取的屬性進行賦值;
9、不允許刪除一個不允許刪除的屬性;
10、變量名不能使用’eval’字符串;
11、變量名不能使用’arguments’字符串;
12、不允許使用以下這種語句:
<script>'use strict';with (Math){x = cos(2)}; // 報錯</script>
13、由于一些安全原因,在作用域 eval() 創建的變量不能被調用:
<script>'use strict';eval ('var x = 2');alert (x);// 報錯</script>
14、禁止this關鍵字指向全局對象。
function f(){ return !this;} // 返回false,因為'this'指向全局對象,'!this'就是falsefunction f(){ 'use strict'; return !this;} // 返回true,因為嚴格模式下,this的值為undefined,所以'!this'為true。
感興趣的朋友還可以使用本站在線HTML/CSS/JavaScript代碼運行工具:http://tools.jb51.net/code/HtmlJsRun測試上述代碼運行結果。
更多關于JavaScript相關內容還可查看本站專題:《javascript面向對象入門教程》、《JavaScript錯誤與調試技巧總結》、《JavaScript數據結構與算法技巧總結》、《JavaScript遍歷算法與技巧總結》及《JavaScript數學運算用法總結》
希望本文所述對大家JavaScript程序設計有所幫助。
相關文章:
