1.新增严格模式: 在第一行使用:'use strict';
语法和行为:必须使用var或者let或者const声明变量;
禁止自定义的函数中的this指向window,要声明为表达式形式;
创建eavl()作用域;
对象不能有重名属性;
2.json新增 JSON.stringify(): 将js对象或数组转换成json对象或数组
JSON.parse(): 将json对象或数组转换成js对象hu或数组
3.对象Object扩展新增
//以指定对象为原型创建新对象
Object.creat(obj,{
name:{
value:'Tom',
writable:false, //标识当前属性是否可以被修改,默认为false
configurable:false ,//标识当前属性是否可以被删除
enumerable:false//标识当前属性是够能被枚举(for in循环),默认为false
}
})
Object.defineProperties(object,desc);//作用: 为指定对象定义扩展多个属性
get方法在获取属性值时自动调用,set当前属性值变动时自动调用
4.数组扩展新增方法
indexOf(value)//得到值在数组中的第一个下标
lastIndexOf(value) //得到值在数组中的最后一个下标
forEach()//遍历循环
map(function(item,index){ }) //遍历数组返回一个新的数组
filter(function(item,index){ }) //遍历过滤条件为true的值,并返回一个新的数组
5.函数function扩展
call(object,参数1,...,参数n); //绑定this为第一个参数对象,立即执行;
apply(object,[ ]); //绑定this为第一个参数对象,第二个参数必须为数组, 立即执行
bind(object,参数1,...,参数n); //绑定this为第一个参数对象并返回一个新的函数,不会立即执行,需要再次调用,常做回调函数
call和apply的区别: 参数传递方式不同