一、什么是严格模式

二、开启严格模式
<!-- 为整个脚本(script标签)开启严格模式 -->
<script>
'use strict';
//下面的js代码就会开启严格模式执行代码
</script>
<script>
(function() {
'use strict';
})
</script>
<!-- 为某个函数开启严格模式 -->
<script>
function fn() {
'use strict';
//下面的代码按照严格模式执行
}
function fn() {
//里面的还是按照普通模式执行
}
</script>
三、严格模式中的变化
<script>
'use strict'
//1.变量名必须声明 再使用
// num = 10
var num = 10
console.log(num);
//2.不能随意删除已经声明好的变量
//delete num;
//3.不在严格模式下的this指向windows
//严格模式下全局作用域函数中的this是undefined
// function fn() {
// console.log(this);
// }
// fn()
//4.严格模式下 如果构造函数不加new调用 this会报错
// function fn() {
// this.sex = '5'
// }
// var f = new fn()
// console.log(f.sex);
//5.定时器this指向的还是window(事件、对象还是指向调用者)
setTimeout(function() {
console.log(this);
}, 2000)
//6.严格模式下函数里面的参数不允许有重名
// function fn(a, a) {
// console.log(a + a);
// }
// fn(1, 2);
</script>