ES5语法复习

1 use strict

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

2 JSON 支持

默认支持 JSON.parse 和 JSON.stringify

3 对象和属性

现在可以对一个对象的属性设置 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
});

4 现在可以直接冻结一个对象

冻结分两种:
Object.seal(obj), 使对象的属性配置配置无法修改,等价于给每一个属性都设置成 configurale=false
Object.freeze(obj),除了 seal 之外,它还会是属性值本身无法被修改,相当于对每个属性同时进行了 configurable=false 和 writable=false

5 更方便的遍历对象的属性

Object.getOwnPropertyNames
Object.keys

6 数组新增方法

map
every
filter
forEach
indexOf
reduce
reduceRight
some

你可能感兴趣的:(ES5语法复习)