ES6详解一:复习ES5 新增内容
来源:互联网 发布:金山手机数据恢复 编辑:程序博客网 时间:2024/06/04 18:49
ES5 新增内容
ES6 最近炒得火热,准备写一下ES6规范的主要内容。在这之前先复习一下ES5相关的内容。
ES5 总体来说改动很少,最重要的是如下几个改动:
use strict
可以在函数定义的第一行通过一个字符串语法把这个函数声明为 严格模式
function() { "use strict";}
在严格模式下,会有如下一些限制:
- 未声明的变量赋值直接报错,而不是变成全局变量
- 函数默认的
this
将变成undefined
而不是默认指向window
- 对只读属性进行写操作,删除不可删除属性,对不可拓展的对象添加属性均会抛出异常
- 禁止使用 with 语句
- 重名的属性会报错,重名的函数参数会报错
JSON 支持
默认支持 JSON.parse
和 JSON.stringify
对象和属性
现在可以对一个对象的属性设置 getter
setter
:
var obj = {};Object.defineProperty(obj, "name", { get: function() { return name.toUpperCase(); }, set: function(n) { name=n; }})
可以定义一个对象的属性是否可以修改、是否可以删除、是否可以添加:
Object.defineProperty( obj, "value", { value: true, writable: false, enumerable: true, configurable: true});
现在可以直接冻结一个对象,冻结分两种:
- Object.seal(obj), 使对象的属性配置配置无法修改,等价于给每一个属性都设置成
configurale=false
- Object.freeze(obj),除了 seal 之外,它还会是属性值本身无法被修改,相当于对每个属性同时进行了
configurable=false
和writable=false
现在可以更方便的遍历对象的属性了:
- Object.getOwnPropertyNames
- Object.keys
数组新增方法
数组新增了如下常用的方法:
- map
- every
- filter
- forEach
- indexOf
- reduce
- reduceRight
- some
所以你可以放心的写如下代码:
[1,2,3].map(function(a){return a*a;})
0 0
- ES6详解一:复习ES5 新增内容
- ES6 详解二: 新增内容概览
- ES6中新增数组方法与ES5之间的区别
- es6新增内容简单概览
- ES5/ES6
- ES6新增属性笔记一
- react的ES5与ES6写法的不同(一)
- 使用babel将es6代码转成es5(一)
- 简述ES5 ES6
- Babel es6 转 es5
- ES6与ES5差别
- es6转化为es5
- 浅谈JavaScript、ES5、ES6
- es6转es5
- webstorm es6--es5
- ES5,ES6互相转换
- 浅谈JavaScript、ES5、ES6
- 浅谈JavaScript、ES5、ES6
- Property Specifiers 属性说明符
- QQ空间等客户端的菜单弹出动画
- select poll epoll
- 像狗一样
- 【Hadoop系列】第二章:安装Hadoop(下)集群版Hadoop
- ES6详解一:复习ES5 新增内容
- LA3882 约瑟夫问题变形
- 第1周编程题-表示分数类的Fraction
- android小错误:Failure retrieving text 0x7f050001 in package
- AndroidAnnotations框架@Ebean,@RootContext,@Background,@UiThread,@AfterInject,@AfterTextChange标签的使用方法
- POJ 2492 A Bug's Life
- Java多线程-并发协作(生产者消费者模型)
- SpringMVC Controller 介绍
- 【操作系统】如何用程序确定当前系统的存储模式