ES5中新增的一些方法

严格模式(strict mode)

  设立目的:1、消除js语法中一些不合理、不严谨之处,减少一些怪异行为

       2、提高编译器效率,提高运行速度

       3、保证代码运行安全

进入严格模式标志  ‘use strict’  分为全局和局部

全局模式:即‘use strict’ 在整个脚本的第一行,整个脚本都以“严格模式”运行   全局有效

局部模式:将“use strict”放在局部,只在局部范围内生效

1 function fn() {
2             "use strict";
3             a = 100;
4             alert(a);
5         }
6         fn();  //a is not defined

严格模式对语法和行为的限制

1、变量必须先声明,再调用,否则直接报错

1、严格模式下:"use strict"
         a = 100;
        alert(a); 
//a is not denfined
//必须先var,先声明,才能调用

2、函数内形参不允许重名

 //2、函数内形参不允许出现重名的函数
        'use strict';
        function fn(a,b,b){
            console.log(a);
            console.log(b);
            console.log(b);
        }
        fn(1,2,3);
        //正常模式下显示为1,3,3
        //严格模式下则报错

3、arguments对象不允许被改变

//3、arguments对象在严格模式下不允许被改变
        'use strict';
        function fn(a,b){
            a = 100;
            console.log(a);//100
            console.log(b);//2
            console.log(arguments);//1,2
        }
        fn(1,2);
        //严格模式下arguments显示为1,2

4、this不能指向全局对象

//4、this无法指向全局
        "use strict";
        function fn(){
            console.log(this);
        }
        fn();
        //正常模式下,指向整个window
        //严格模式下,显示this  =>  undefined

新增数组方法

  indexof()  返回元素在数组中位置,没有返回-1

  forEach(callback(v,k))   遍历数组中每一个元素,无返回值

  map(calllback(v,k))   返回一个新数组,数组中的元素就是经过处理后的数组  

  filter(callback(v,k))   过滤,只有当boolean值为true是才返回

原文地址:https://www.cnblogs.com/zoutuan/p/11577479.html