ES6详解一:复习ES5 新增内容

ES5 新增内容

ES6 最近炒得火热,准备写一下ES6规范的主要内容。在这之前先复习一下ES5相关的内容。

ES5 总体来说改动很少,最重要的是如下几个改动:

use strict

可以在函数定义的第一行通过一个字符串语法把这个函数声明为 严格模式

function() {
  "use strict";
}

在严格模式下,会有如下一些限制:

  • 未声明的变量赋值直接报错,而不是变成全局变量
  • 函数默认的 this 将变成 undefined 而不是默认指向 window
  • 对只读属性进行写操作,删除不可删除属性,对不可拓展的对象添加属性均会抛出异常
  • 禁止使用 with 语句
  • 重名的属性会报错,重名的函数参数会报错

JSON 支持

默认支持 JSON.parseJSON.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=falsewritable=false

现在可以更方便的遍历对象的属性了:

  • Object.getOwnPropertyNames
  • Object.keys

数组新增方法

数组新增了如下常用的方法:

  • map
  • every
  • filter
  • forEach
  • indexOf
  • reduce
  • reduceRight
  • some

所以你可以放心的写如下代码:

[1,2,3].map(function(a){return a*a;})
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值