文章目录
一、什么是严格模式
JavaScript变体的一种方式,即在严格的条件下运行JS代码。
二、开启严格模式
严格模式分为 为脚本开启严格模式和 为函数开启严格模式 两种情况
为脚本开启严格模式
<script>
'use strict';
</script>
为函数开启严格模式
需要把
'use strict';
声明放在函数体所有语句之前。
<script>
function fn() {
'use strict';
// 下面的代码按照严格模式执行
}
function fn1() {
// 下面的代码按照普通模式执行
}
</script>
三、开启严格模式的变化
变量名必须先声明再使用
<script>
'use strict';
// num = 10;
// console.log(num); // num is not defined
var num = 10;
console.log(num); // 10
</script>
不能随意删除以及声明好的变量
<script>
'use strict';
var num = 10;
console.log(num); // 10
delete num; // Delete of an unqualified identifier in strict mode.
</script>
严格模式下全局作用域中函数的this是undefined
<script>
'use strict';
function fn() {
console.log(this);
}
fn(); // undefined
</script>
严格模式下,调用构造函数不加new,this会报错
<script>
'use strict';
function Star() {
this.sex = '男';
}
Star(); // undefined
</script>
函数名里面不能有重名的函数
<script>
'use strict';
function fn(a, a) { // Duplicate parameter name not allowed in this context
console.log(a + a);
}
fn(1, 2);
</script>