ES5总结

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的区别:  参数传递方式不同

你可能感兴趣的:(ES5总结)