严格模式消除了在非限制模式下会忽略的错误,从而使javascript " 更安全 " 。
是否认为它是最佳做法之一?
是 是,它被认为是最佳做法的一部分, 与 Javascript 合作,包括严格模式。这样做的方式是在你的联署材料档案中添加以下代码行。
'use strict';
在你的代码。
这对用户代理意味着什么?
说明代码应该严格解释 向浏览器这样的用户代理指定 他们应该把代码 完全像书面的一样对待 如果代码不合理的话 就会出错
例如:考虑在.js
您的文件有以下代码:
设想情景1:[无严格模
var city = "Chicago"
console.log(city) // Prints the city name, i.e. Chicago
设想情况2:[无严格模
city = "Chicago"
console.log(city) // Prints the city name, i.e. Chicago
为何在两种情况下都打印变量名称?
不打开严格模式,用户代理商经常对问题代码进行一系列修改,以试图使问题代码变得合理。在表面上,这看似是一件好事,事实上,在严格模式之外工作使得人们有可能在不把所有细节都固定下来的情况下,用JavaScript代码湿透脚部。然而,作为一个开发者,我不想在我的代码中留下一个错误,因为我知道它可能会在晚些时候回来咬我,我还只是想写好代码。这就是严格模式有助于解决问题的地方。
设想方案3:[严格示范
'use strict';
city = "Chicago"
console.log(city) // Reference Error: asignment is undeclared variable city.
附加提示 :要使用严格模式保持代码质量, 您不需要一次又一遍地写入, 特别是如果您有多个.js
您可以在eslint
规则如下:
文件名 : .eslintrc.js
module.exports = {
env: {
es6: true
},
rules : {
strict: ['error', 'global'],
},
};
那么,什么是严格防止的呢?
使用变量而不声明这将以严格的方式丢弃一个错误。 这是为了防止您在应用程序中无意中创建全局变量。 打印芝加哥的例子特别覆盖了这一点 。
删除变量或函数或参数严格情况下是无的。
"use strict";
function x(p1, p2) {};
delete x; // This will cause an error
复制参数名称是否严格允许。
"use strict";
function x(p1, p1) {}; // This will cause an error
不允许以 Javascript 语言保留单词字词是工具界面,让,包,包,私人,受保护,公开,静态和产出
若要列出更全面的清单, 请在此检查 MDN 文件 :https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Strict_mode