1.开启严格模式的方法
<script>
// 1.为整个脚本开启严格模式(全局)
'use strict';
</script>
<script>
// 为单个函数开启严格模式(局部)
function fun1() {
'use strict';
}
// 按照普通函数模式执行
function fun2() {
}
</script>
<script>
// 为块级作用域开启严格模式
(function() {
'use strict';
})()
</script>
2.严格模式的应用
'use strict';
// 1.使用变量必须先声明
// stu =16;
// console.log(stu);//stu is not defined
// 2.delete 不能随意删除定义好的变量
// delete age;//Delete of an unqualified identifier in strict mode. (在严格模式下删除未限定的标识符。)
// 3.在严格模式下,全局函数中的this,指向underfined
// function fun1(){
// console.log(this);//undefined
// }
// fun1();
// 4.在严格模式下,如果构造函数不加new,this的指向undefined
// function Person(){
// this.age = 18;
// }
// Person();
// console.log(window.age)//Cannot set property 'age' of undefined
//严格模式下实例化对象
// var p1 = new Person();
// console.log(p1.age);//18
// 5.定时器下的函数,this指向的是window
// setTimeout(function(){
// console.log(this);//Window {parent: Window, opener: null, top: Window, length: 0, frames: Window, …}
// },1000)
// 6.严格模式下不允许重复命名
var num1 = 1;
var num1 =2;
function fun1(){
retutrn num1+num1;
};
console.log(fun1(1,2));//4