为什么要使用严格模式
javascript未来的新特性会默认使用严格模式。
严格模式可以降低出现莫名其妙的错误的出现。
开启
方式一(推荐,可以避免方式二、三的缺陷)
(function(){
'use strict';
})()
方式二(使用默认参数,解构,扩展运算符会报错)
function fn(){
'use strict';
}
方式三(合并脚本会出现问题)
<script>
'use strict';
</script>
严格模式有什么不同
创设eval作用域
(function(){
'use strict';
eval('var b=1');
console.log(b)//报错
})()
禁止this指向全局对象并且不再自动转为对象
(function(){
'use strict';
function fn(){
console.log(this)
}
fn()//undefined
fn.call(1)//1
})()
arguments不再追踪参数的变化
(function(){
'use strict';
function fn(a){
a=2
console.log(arguments[0])
}
fn(1);//1
})()
其他:还有其他一些改变就不列举了,都是会报错出来给我看的。
网友评论