JavaScript 中的严格模式和lazy

Posted by cl9000 on May 27, 2020

预测未来最好的方法就是去创造未来。——<亚伯拉罕·林肯>

严格模式的 JavaScript 使开发人员更容易编写“安全” JavaScript

默认情况下,JavaScript允许程序员非常粗心,例如,当我们第一次引入变量时,不需要我们用“ var”声明变量。尽管这对于没有经验的开发人员来说似乎是一种便利,但是当变量名拼写错误或意外引用超出其范围时,它也是许多错误的根源。

程序员喜欢让计算机为我们做无聊的工作,并自动检查我们的工作是否有错误。这就是JavaScript“严格使用”指令所允许的,将错误变成了JavaScript错误。

我们可以通过在js文件顶部来添加该指令:

1
2
3
// Whole-script strict mode syntax
"use strict";
var v = "Hi! I'm a strict mode script!";

或在函数内部:

1
2
3
4
5
6
7
8
function f()
{
// Function-level strict mode syntax
'use strict';
function nested() { return "And so am I!"; }
return "Hi! I'm a strict mode function! " + nested();
}
function f2() { return "I'm not strict."; }

通过将此指令包含在JavaScript文件或函数中,我们将指示JavaScript引擎以严格模式执行,从而禁用一堆通常在大型JavaScript项目中不希望出现的行为。除其他事项外,严格模式会更改以下行为:

  • 变量只能在变量前面加上“ var”后才能引入
  • 尝试写入只读属性会产生嘈杂的错误
  • 您必须使用“ new”关键字来调用构造函数
  • “ this”未隐式绑定到全局对象
  • 允许非常有限地使用eval()
  • 保护您避免使用保留字或将来的保留字作为变量名

它不是一个语句,而是一个文字表达式,被早期JavaScript版本忽略。在以下情况下支持严格模式:

  • 版本10的Internet Explorer。
  • 版本4的Firefox。
  • Chrome版本13。
  • 版本5.1的Safari。
  • 版本12起的Opera。

有关严格模式的完整说明,请参见MDN。
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Strict_mode

参考

关注【公众号】,了解更多。*



支付宝打赏 微信打赏

赞赏一下 坚持原创技术分享,您的支持将鼓励我继续创作!