4

【笔记】JS严格模式

 1 year ago
source link: https://blog.loli.fj.cn/2023/05/14/JS%E4%B8%A5%E6%A0%BC%E6%A8%A1%E5%BC%8F/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

【笔记】JS严格模式

2023-05-14前端学习指北

JS严格模式学习笔记

严格模式的作用

  • 消除了JS愈发的一些不合理、不严谨之处,减少了一些怪异行为
  • 消除代码运行的一些不安全之处,保证代码运行的安全
  • 提高编译器效率,增加运行速度
  • 禁用了在ECMAScript的未来版本中可能会定义的一些语法,为未来新版本JS做好铺垫,例如增添部分保留字

开启严格模式

为当前脚本中的所有代码开启严格模式

<script>
"use strict";
</script>

为当前函数中的所有代码开启严格模式

<script>
(function() {
"use strict";
})();
</script>

严格模式下的规定

对于变量的规定

必须先声明才能使用

// 变量名 = 变量值;

严禁删除已经声明的变量

// delete 变量名;

对于this指向的规定

构造函数必须使用new才能使用

  • 在全局模式下this不再指向window对象,而是指向undefined
    • 定时器中的this还是指向window对象
  • 因为this不再指向window对象,所以构造函数在不用new时不能使用
function 构造函数名() {
this.属性名 = 属性值;
}
// 构造函数名();

对于函数的规定

函数的形参不允许重名

// function 函数名(同名形参, 同名形参) {}

不允许在非函数区域和非全局区域定义函数

if () {
// function 函数名() {}
}

for () {
// function 函数名() {}
}

while () {
// function 函数名() {}
}

哔哩哔哩——黑马前端


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK