💂 个人网站: 【紫陌】【笔记分享网】
💅 想寻找共同学习交流、共同成长的伙伴, 请点击【前端学习交流群】
JavaScript有两种模式 :一种是普通模式,一种是严格模式
JavaScript 严格模式即在严格的条件下运行。
严格模式有什么用?
- 消除 Javascript 语法的不合理、不严谨之处,减少怪异行为;
- 消除代码运行的不安全之处,保证代码运行的安全;
- 提高编译器效率,增加运行速度;
- 为未来新版本的 Javascript 做好铺垫。
开启严格模式
严格模式通过在脚本或函数的头部添加 use strict; 表达式来声明。
<!-- 为整个脚本(script标签)开启严格模式 -->
<script>
'use strict';
// 下面的js 代码就会按照严格模式执行代码
</script>
<!-- 为某个函数开启严格模式 -->
<script>
// 此时只是给fn函数开启严格模式
function fn() {
'use strict';
// 下面的代码按照严格模式执行
}
function fun() {
// 里面的还是按照普通模式执行
}
</script>
严格模式的变化
1.变量名必须先声明再使用
'use strict';
num = 10;
console.log(num);
2.我们不能随意删除已经声明好的变量 vscode已经提示波浪线了,控制台更不用看了
3. 严格模式下全局作用域中函数中的 this 是 undefined。
<script>
'use strict';
function fn() {
console.log(this); // undefined。
}
fn()
</script>
4. 严格模式下,如果 构造函数不加new调用, this 指向的是undefined 如果给他赋值则 会报错.
function Star() {
this.sex = '男';
}
Star();
console.log(zimo.sex);
如果加上new关键字
function Star() {
this.sex = '男';
}
var ldh = new Star();
console.log(zimo.sex);
5. 严格模式下函数里面的参数不允许有重名
<script>
'use strict';
function fn(a, a) {
console.log(a + a);
};
</script>
如果不开启严格模式
<script>
function fn(a, a) {
console.log(a + a);
};
fn(1, 2);
</script>
至于为什么是4?因为同一个a,内存地址一样
关注点赞!!!经常更新