浏览器现在是基于es3.0的方法与es5.0的新增方法来使用的
es3.0与es5.0因为版本的不同可能会冲突  那么浏览器会按照es3.0来解决
es5.0严格模式
es3.0和es5.0产生冲突的部分就使用es5.0  否则会使用es3.0
启用es5.0严格模式
“use strict”
不再兼容es3的一些不规则语法  使用全新的es5规范
为什么这样写
因为这就是一行字符串  不会对不兼容严格模式的浏览器产生影响
因为一些老的浏览器可能没有更新到es5.0版本  那么如果是通过方法之类的来启用严格模式  那么就会报错
但是写成字符串起码浏览器不报错
两种用法
全局严格模式
这条语句要放在代码的最顶端  它前面不可以有其他代码  可以有空格回车
局部函数内严格模式(推荐)
如
function test(){
“use strict”;
console.log(arguments.callee);
}
严格模式规则
1  不支持 with , arguments.callee , func.caller
2  变量赋值前必须声明
如  b = 123;  系统报错
3  局部this必须被赋值  赋值什么就是什么
es3.0时预编译this会指向window  但是es5.0不会  会返回undefined
如
            function test(){
                console.log(this);
            }
            test();
//this为undefined
4  拒绝重复属性和参数
但是系统不会报错
