国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

JavaScript起點(嚴格模式深度了解)

2024-05-06 14:19:49
字體:
來源:轉載
供稿:網友
嚴格模式(Strict Mode)是ECMAScript5新增的功能。ECMAScript5雖然可以向后兼容ECMAScript3,但如果使用嚴格模式,哪些ECMAScript5“不在建議使用”的ECMAScript3語法功能將會被全部進制,如果出現就會拋出一行。引入Strict Mode目的是允許開發人員能夠選擇“更好”的Javascript版本,這個版本能用不同的方式處理那些普遍而又臭名昭著的錯誤。目前所有的主流瀏覽器的最新版本——包括IE10與Opera12——都支持嚴格模式。關于嚴格模式的大多數信息都可以在《ES5規范》[PDF]的第223頁找到。

如何啟用嚴格模式
可以在全局范圍內使用嚴格模式,也可以在一個函數范圍內使用嚴格模式。如果要再全局范圍內啟用嚴格模式,只需要在程序的第一行使用代碼即可:
代碼如下:
'use strict';

在函數的內部啟用嚴格模式,只需要在函數體內第一行使用代碼即可:
代碼如下:
function imStrict(){
  'use strict';
  // ... 其他代碼 ...
}

啟用嚴格模式的語句只是一段普通的字符串“use strict”,沒有任何新語法。這意味著不會對就舊式瀏覽器造成任何負面影響,因此可以大膽使用。

在函數內部啟用嚴格模式的一個實際應用是,把整個Javascript類庫定義在嚴格模式的函數內部,這樣就可以不影響外部的代碼:
代碼如下:
(function(){
  "use strict";
  // Define your library strictly...
})();

嚴格模式帶來了什么?
在開始介紹特殊特性之前,你需要記住,嚴格模式的目標之一是允許更快地調試錯誤。幫助開發者調試的最佳途徑是當確定的問題發生時拋出相應的錯誤(throw errors when certain patterns occur),而不是悄無聲息地失敗或者表現出奇怪的行為(這正是如今不在嚴格模式下的Javascript做的)。嚴格模式下的代碼拋出更多的錯誤信 息,這是好事,因為它能幫助開發者很快注意到一些必須立即解決的問題。

去除with語句(Eliminates with)
首先,嚴格模式去除了with語句。當with語句出現在嚴格模式中時,它會被認為是非法的Javascript語句并拋出語法錯誤。所以,使用嚴格模式的第一步就是確保你沒有在使用with。
代碼如下:
// 在嚴格模式中將導致語法錯誤
with(location){
alert(href);
}

防止意外的全局變量(Prevents accidental globals)
第二點是,變量在賦值之前必須聲明。在非嚴格模式下,給一個未聲明的變量賦值將自動生成一個該名字的全局變量。這是Javascript中最普遍的錯誤之一。嚴格模式中,這樣做將拋出一個錯誤。
代碼如下:
// 嚴格模式中拋出一個錯誤
(function(){
someUndeclaredVar ="foo";
}());

取消this值的強制轉換(Eliminates this coercion)
另一個重要的變化是,當this值為null或undefined時,不會再將其強制轉換為全局對象。也就是說,this保留了它的原始值,也因此可能會導致一些依賴于強制轉換的代碼發生錯誤。例如:
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 黎平县| 西安市| 石首市| 仁化县| 九寨沟县| 克拉玛依市| 肇源县| 星座| 绵阳市| 鹿泉市| 乌兰浩特市| 芒康县| 甘孜县| 河池市| 建始县| 博罗县| 舞钢市| 云和县| 江陵县| 曲阳县| 黔江区| 嘉兴市| 旬阳县| 蚌埠市| 丰县| 云霄县| 姜堰市| 九龙坡区| 贺兰县| 密云县| 县级市| 墨玉县| 隆林| 修武县| 南和县| 璧山县| 边坝县| 河西区| 灵台县| 昭苏县| 花莲县|