严格模式消除了在非限制模式下会忽略的错误,从而使javascript " 更安全 " 。
是否将它视为最佳做法之一?
是的,它被视为最佳做法的一部分,同时与 Javascript 合作, 包括严格的方式。 这是通过在您的 js 文件中添加下面的代码行来完成的 。
“严格使用”;
在你的代码。
这对用户代理意味着什么?
表示代码应严格解释,向浏览器等用户代理器指定代码应如实处理代码,如果代码不合理,则会出错。
例如:在您的 .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
为何在两种情况下都打印变量名称?
用户代理商经常对问题代码进行一系列的修改, 试图让问题代码变得合理。在表面上,这看起来就像一件好事, 事实上,在严格模式之外工作, 使得人们有可能在不把所有细节都固定下来的情况下, 将脚部浸湿在刺写代码中。 但是,作为一个开发者,我不想在我的代码中留下一个错误, 因为我知道它可能会回来咬我,
情景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'],
},
};
好吧,那么什么是被阻止 严格的方式?
使用变量而不声明会以严格模式丢弃错误 。 这是为了防止您在应用程序中无意中生成一个错误 。 打印 Chicago 的例子特别包含此内容 。 删除一个变量或函数或参数或参数是严格模式的不拒绝 。 “ 严格使用 ” ; 函数 x( p1, p2) {} {} {} ; 删除 x ; / / 这将导致错误, 严格模式不允许重复参数名称 。 “ 严格使用 ” ; 函数 x (p1, p1) {} {} {} / 这将造成错误, 严格模式不允许重复参数名称 。 “ 严格使用 ” ; 函数 x (p1, p1) {} {} / 这将 cau 。
此处的 mdn 文件请查阅更全面的清单: https:// developmenter.mozilla.org/en-us/docs/web/javascript/reference/strict_mode。