论坛首页 Web前端技术论坛

ECMA 推出 JavaScript 5

浏览 3631 次
该帖已经被评为隐藏帖
作者 正文
   发表时间:2009-12-28  

转发自http://www.comsharp.com/GetKnowledge/zh-CN/It_News_K875.aspx

 

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 开有专家博客

   发表时间:2010-01-05  
这个啥时候会被支持?
0 请登录后投票
   发表时间:2010-01-05  
不要eval 以后json字符创真么转换成JavaScript对象啊
0 请登录后投票
   发表时间:2010-01-05  
kjj 写道
不要eval 以后json字符创真么转换成JavaScript对象啊


楼上的,既然有了Json对象,就肯定用对应的方法在字符串和对象之间进行转换。

以下摘自楼主文章中PDF文件的部分章节供参考:

15.12.2 parse ( text [ , reviver ] )
The parse function parses a JSON text (a JSON-formatted String) and produces an ECMAScript value. The JSON format is a restricted form of ECMAScript literal.

15.12.3 stringify ( value [ , replacer [ , space ] ] )
The stringify function returns a String in JSON format representing an ECMAScript value.
0 请登录后投票
   发表时间:2010-01-05  
搞那么多标准也得浏览器厂商支持才行,不支持也就是摆设,样子工程
0 请登录后投票
   发表时间:2010-01-06  
不用eval声明变量这个我支持,但是用eval来做运行时判断还是要的
0 请登录后投票
   发表时间:2010-01-08  
主要看IE什么时候能 彻底支持...
0 请登录后投票
论坛首页 Web前端技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics