一、严格模式的开启
1、整个文档开启严格模式
<script>
window.addEventListener('DOMContentLoaded',function () {
'use strict'; //为整个脚本文档开启严格模式
......
})
</script>
或者
<script>
/*
*为这立即执行函数添加严格模式,因为这script里面只有这个立即执行函数,所以也变相
*的给整个文档添加了严格模式
*/
(function () {
'use strict';
......
}())
</script>
2、某个函数开启严格模式
<script>
window.addEventListener('DOMContentLoaded',function () {
function fn(){ //给这个fn函数添加严格模式
'use strict';
......
}
})
</script>
二、严格模式的说明
1、严格模式下的变量必须先声明在使用
2、严格模式下不能随意删除变量
3、严格模式下的this指向问题
在非严格模式下的全局作用域函数的this指向window
而在严格模式下的全局作用域函数的this指向undefined
4、严格模式下的定时器this指向还是window
5、严格模式下事件、对象的this还是调用者
6、严格模式下,如果构造函数不加new调用,this会报错(因为严格模式下的全局作用域函数的this指向undefined)
7、严格模式下的函数不能有重复的参数
8、严格模式下的函数声明必须在最顶层,不能在非函数的代码块声明函数
以上都可参考https://developer.mozilla.org/zh-CN/docs/Glossary/strict_mode