什么是ES5:比普通js运行要求更加严格的模式
为什么:js语言本身有很多广受诟病的缺陷
如何:在当前作用域的顶部添加:"use strict"
要求:
1、禁止给未声明的变量赋值
2、静默失败升级为错误
静默失败:执行不成功,也不报错!
3、禁用了 arguments.calee
arguments.callee:在调用时,获得当前正在执行函数名,因为递归的效率极低--重复计算量太大
解决:几乎所有的递归都可以用循环代替
4、普通函数调用和匿名函数自调中的this不再指向window,而是underfine