ECMA 推出 JavaScript 5

ECMA 本周推出了 JavaScript 5(PDF),除了增強基礎函數庫之外,還引入了嚴格運行時模式(Strict Runtime Modes)以避免代碼中的常見錯誤。ECMA ECMAScript 4 的努力曾以失敗告終,ECMA 甚至沒有發布 ECMAScript 4 細則。

過去幾年,諸如 NitroTraceMonkey 一類的 JavaScript 引擎發展迅猛,JavaScript 成了 Google Wave 一類應用的新寵。鑒于此,ECMAScript 5 在兼容目前廣泛使用的 ECMAScript 3 的同時,提供了嚴格模式,以防止開發者犯錯。

嚴格模式

嚴格模式可用以下語句聲明:

"use strict;"

該語句對以往的代碼沒有影響,但 JavaScript 5 的新運行時會進入嚴格模式,嚴格模式主要包含以下改變:

  • 變量必須聲明后才可以使用
  • Eval 成為保留詞,同時,不可以再使用 Eval 聲明變量,如 eval("var i=3"); print(i); 之類的語句會報錯
  • 8進制數字表示被禁止, 010 代表 10 而不是 8
  • 參數中不再允許使用 delete
  • with 語句曾是萬錯之源,現被禁用。
  • 函數中不可以再出現重名參數。
  • 對象中不可以再出現重名屬性。
  • arguments 和 caller 變量現在是 immutable 變量
  • 訪問全局對象會報錯。

函數擴展

在基本函數庫,也有一些變化:

  • Date 現在支持 ISO8601 日期格式
  • String 內置了 trim() 方法
  • 引入備受歡迎的 JSON 對象
  • 內置了 bind 操作
  • Array 對象內置了一些標準函數,如 indexOf(), map(), filter(), reduce()
  • Object 內置了seal() 函數,防止被加入新屬性,同時內置 freeze() 函數使對象變成只讀狀態
  • Object.keys() 會列出對象中所有可以枚舉的屬性
  • Object.getOwnPropertyNames() 會列出對象中所有可枚舉以及不可枚舉的屬性
  • Object.getPrototypeof() 返回給定對象的原型

編譯

劉清濤(35公里),CSDN特約記者,Web開發與設計師,COMSHARP CMS 開發成員,熱衷 Web 技術,長期譯介海外最新 Web 相關的技術文章與資訊,在 CSDN 開有專家博客





評論
...
發表評論


用戶


評論(不超過1000字)


 8 x 5 = ? 請將左邊的算術題的結果填寫到左邊的輸入框  


  發送給朋友| 打印友好
7 x 12 小時服務熱線
0532 - 83669660
微信: comsharp
QQ: 13885509
QQ: 592748664
Skype: comsharp