# 1、ES5的新增
- 什么是ES5,ECMAScript5
- ES的版本更新,向下兼容,老版本并无所有废弃,新版本只是在老版本的基础上新增
## 1. 严格模式
- 严格模式:更严格的开发模式
- js的代码规范很是不严格,因此严格模式的意义是:
- 消除Javascript语法的一些不合理、不严谨之处,减小一些怪异行为;
- 消除代码运行的一些不安全之处,保证代码运行的安全;
- 提升编译器效率,增长运行速度;
- 为将来新版本的Javascript作好铺垫
- 严格模式的开启方式
- 在做用域开始的位置,加上一行字符串:"use strict";
- 局部严格
- 安全,但不方便,麻烦
- 全局严格
- 不安全
- 配合匿名函数
- 利用父子做用域,本质是局部,但实现了全局的方便
// "use strict";
// function fn(){
// "use strict"
// }
// ;(function(){
// "use strict"
// // ....
// function fn(){}
// })();
- 严格模式开启以后的变动
1. 声明变量必须加关键字(var)
2. 不容许参数名重复
3. 没有明确隶属对象的函数中的this(执行了)指向undefined
4. arguments的内容不会被形参的改变而影响
5. arguments.callee被禁止使用
## 2. 新增了一些数组的方法
- 功能:
- 参数:
- 返回值:
- 是否改变原数组:
- arr.indexOf()
- arr.forEach()
- arr.map()
- arr.filter()
- arr.some()
- arr.every()
- arr.reduce()
- arr.reduceRight()
- .....
- 数组的经常使用方法大全:https://www.jianshu.com/p/7e160067a06c