JavaScript高级程序设计(第3版)学习笔记13 ECMAScript5新特性


Posted in Javascript onOctober 11, 2012

接下来应该是BOM和HTML5了,但是鉴于ECMAScript5相对于ECMAScript3的新变化比较多,而且这些变化也非常的有意思,因此在这篇文章中再将我认为的有意思的变化(并非全部变化)集中整理一下,但这里只是列举,不具体展开。

一、语法变化

1、关键字和保留字

在ES3中,使用关键字做标识符会导致“Identifier Expected ”错误,而使用保留字做标识符可能会也可能不会导致相同的错误,具体取决于特定的引擎。在ES5中,关键字和保留字虽然不能作为标识符 使用,但可以作为对象的属性名。在ES5中的关键字和保留字中,新增了let和yield。为了保证最大的兼容性,不管是ES3还是ES5中的关键字和保留字,都不要作为标识符使用。

2、属性特性

ES5允许使用用户定义的属性描述来覆盖给定属性的enumerable、configurable、writable、get、set等属性了。具体方法是使用定义在Object对象上的静态函数。

3、严格模式

最大的语法变化,就是引入了严格模式,可以通过语句"use strict"; 来开启严格模式,在代码顶部添加整个脚本启用严格模式,在函数内部添加则只对该函数启用严格模式。严格模式下主要的变化有:

(1)使用变量前必须先定义,即不允许隐式的全局变量

(2)不使用八进制数据

(3)不使用with语句

(4)eval

A、不能使用eval作为标识符,因此不能把变量或函数命名为eval

B、外部不能访问在eval()函数中定义的变量

(5)arguments

A、不能使用arguments作为标识符

B、不能修改作为函数内部对象的arguments,因此形式参数和arguments之间不再有同步变化

C、不能访问arguments.callee

D、ES5中定义了arguments.caller属性,它的值始终是undefined,主要用于区分arguments.caller和函数的caller,但是不能在严格模式下访问

(6)函数

A、函数中不能出现两个同名的形式参数

B、不能给函数的caller属性赋值

C、未指定环境对象而调用函数,this值不会指向window,而是undefined

(7)对象

A、对象中不能出现两个同名的属性

B、修改一个特性[[writable]]为false的属性时,会抛出异常,而不是静默失败,同样的使用delete删除特性[[configurable]]为false的属性时也会抛出异常

(8)delete

不能使用delete删除显示声明的变量和函数

二、内建对象的变化

1、Object对象

(1)继承相关方法:create()、getPrototypeOf()

(2)属性相关方法:defineProperty()、defineProperties()、getOwnPropertyDescriptor()、getOwnPropertyNames()、keys()

(3)防篡改方法:preventExtensions()、isExtensible()、seal()、isSealed()、freeze()、isFrozen()

2、Function对象

(1)添加了bind()方法。

(2)规范化了一个函数对象的属性caller,用于指向调用当前函数的函数的引用。

(3)prototype是不可枚举的

3、Array对象

(1)判断方法:添加了静态方法Array.isArray(obj)用于判断obj是否为一个Array对象的实例。

(2)索引方法:添加了两个用于查找指定项索引的方法indexOf()和lastIndexOf()。查找时使用全等(===)进行匹配。

(3)迭代方法:添加了every()、some()、forEach()、map()、filter()方法。

(4)缩小方法:添加了reduce()和reduceRight()方法。

4、String对象

添加了trim()方法。

5、JSON对象

添加了原生JSON内建对象。

6、Date对象

添加了Date.now()、Date.prototype.toJSON()等方法。

7、RegExp对象

在ES3中,使用正则表达式字面量时共享一个RegExp实例,而在ES5中,每次使用正则表达式字面量时都要创建新的RegExp实例,就像使用RegExp构造函数一样。

Javascript 相关文章推荐
jquery滚动条插件jScrollPane的使用介绍
Nov 08 Javascript
JavaScript中对循环语句的优化技巧深入探讨
Jun 06 Javascript
jQuery中innerWidth()方法用法实例
Jan 19 Javascript
jQuery操作表单常用控件方法小结
Mar 23 Javascript
TypeScript具有的几个不同特质
Apr 07 Javascript
详解Node.js如何开发命令行工具
Aug 14 Javascript
jQuery向父辈遍历的简单方法
Sep 18 Javascript
js对字符串进行编码的方法总结(推荐)
Nov 10 Javascript
简单实现node.js图片上传
Dec 18 Javascript
浅谈JavaScript_DOM学习篇_图片切换小案例
Mar 19 Javascript
使用layui 的layedit定义自己的toolbar方法
Sep 18 Javascript
vuex入门最详细整理
Mar 04 Javascript
JavaScript高级程序设计(第3版)学习笔记12 js正则表达式
Oct 11 #Javascript
JavaScript高级程序设计(第3版)学习笔记11 内建js对象
Oct 11 #Javascript
JavaScript高级程序设计(第3版)学习笔记10 再访js对象
Oct 11 #Javascript
JavaScript高级程序设计(第3版)学习笔记9 js函数(下)
Oct 11 #Javascript
JavaScript高级程序设计(第3版)学习笔记8 js函数(中)
Oct 11 #Javascript
JavaScript高级程序设计(第3版)学习笔记7 js函数(上)
Oct 11 #Javascript
JavaScript高级程序设计(第3版)学习笔记6 初识js对象
Oct 11 #Javascript
You might like
利用php+mysql来做一个功能强大的在线计算器
2010/10/12 PHP
php正则匹配文章中的远程图片地址并下载图片至本地
2015/09/29 PHP
PHP的反射机制实例详解
2017/03/29 PHP
php+javascript实现的动态显示服务器运行程序进度条功能示例
2017/08/07 PHP
javascript入门基础之私有变量
2010/02/23 Javascript
js事件(Event)知识整理
2012/10/11 Javascript
javascript full screen 全屏显示页面元素的方法
2013/09/27 Javascript
jQuery获取(选中)单选,复选框,下拉框中的值
2014/02/21 Javascript
jQuery实现网站添加高亮突出显示效果的方法
2015/06/26 Javascript
基于jQuery倾斜打开侧边栏菜单特效代码
2015/09/15 Javascript
jquery遍历函数siblings()用法实例
2015/12/24 Javascript
Jquery中巧用Ajax的beforeSend方法
2016/01/20 Javascript
js跨域资源共享 基础篇
2016/07/02 Javascript
json与jsonp知识小结(推荐)
2016/08/16 Javascript
bootstrap fileinput 插件使用项目总结(经验)
2017/02/22 Javascript
微信小程序页面开发注意事项整理
2017/05/18 Javascript
vue debug 二种方法
2018/09/16 Javascript
用Python的Django框架完成视频处理任务的教程
2015/04/02 Python
Python使用正则表达式获取网页中所需要的信息
2018/01/29 Python
tensorflow ckpt模型和pb模型获取节点名称,及ckpt转pb模型实例
2020/01/21 Python
Python class的继承方法代码实例
2020/02/14 Python
python 的topk算法实例
2020/04/02 Python
Python gevent协程切换实现详解
2020/09/14 Python
python中使用asyncio实现异步IO实例分析
2021/02/26 Python
伊芙丽官方旗舰店:中国淑女一线品牌
2017/12/01 全球购物
美国基督教约会网站:ChristianCafe.com
2020/02/04 全球购物
Ajxa常见问题都有哪些
2014/03/26 面试题
自动化工程专业个人应聘自荐信
2013/09/26 职场文书
大学自荐信
2013/12/12 职场文书
医院门卫岗位职责
2013/12/30 职场文书
十一酒店活动方案
2014/02/20 职场文书
后勤主管岗位职责
2014/03/01 职场文书
安全资料员岗位职责范本
2014/06/28 职场文书
电工实训报告总结
2014/11/05 职场文书
2015年暑期实践报告范文
2015/07/13 职场文书
高中团支书竞选稿
2015/11/21 职场文书