「这是我参与2022首次更文挑战的第11天,活动详情查看:2022首次更文挑战」。
use script是JavaScript编程中经常使用的一种开发模式,我们叫他严格模式。
这种模式的主要特点是它允许开发人员只使用有限的语法并避免不必要的错误。
在初级开发人员的项目中,它不会导致太大的问题。但是如果项目很大,那么代码中“小”错误可能就会引发大问题。为了防止这种情况发生,开发人员在 JavaScript 开发时应用了 use strict 模式。
严格模式如果检测到错误,将强制系统停止程序执行过程。也就是说,这种模式可以编写没有缺点的程序。
在 JavaScript 中使用严格模式
在 JavaScript 中使用 strict 可以一次应用于整个文档或单个文档函数。为了在文档中启用此模式,需要将表达式“Use strict”用单引号或双引号放在正确的位置。示例:
// 整个脚本都开启严格模式的语法
"use strict";
var v = "Hi! I'm a strict mode script!";
如果需要在一个单独的函数使用严格模式,只需要在它的起始位置输入“Use strict”。有了这个,这个函数的所有部分都将处于“严格模式”,包括嵌套函数。 示例:
function strict() {
// 函数级别严格模式语法
'use strict';
function nested() {
return "And so am I!";
}
return "Hi! I'm a strict mode function! " + nested();
}
function notStrict() {
return "I'm not strict.";
}
JavaScript 中严格模式和标准模式的区别
使用use strict会对 JavaScript 进行以下更改:
-
在严格模式下,不会为未定义的变量赋值。
-
您不能使用“with”语句。
-
无法在对象文字中添加重复的属性。
-
无法添加额外的正式函数参数。
-
当“参数”对象改变时,参数不会改变。
-
当参数是对象的不可变属性时,“删除”将引发错误。
-
没有办法将“this”转换为对象。
-
无法更改“eval”和“arguments”并将它们用作名称。
-
增加了为将来使用而保留的字数。
-
没有使用八进制系统的选项。
-
没有办法应用可能难以优化代码本身的代码结构。
-
不能在传递给“eval”方法的代码中声明变量。
-
不能删除常规变量。
-
。。。
总结
严格模式下更容易写出“安全”的JavaScript代码。
主流浏览器现在都具备了严格模式。但是不要盲目的依赖它,因为市场上仍然有大量的浏览器版本只部分支持严格模式或者根本就不支持(比如IE10之前的版本)。依赖这些改变可能会导致没有实现严格模式的浏览器中出现问题或者错误。
所以需要谨慎地使用严格模式,通过检测相关代码的功能保证严格模式不出问题。
经常有人问:是不是需要一直使用‘use strict’模式?
无法明确回答。一方面,这种模式改进了代码,但另一方面,在这种模式下编码时,开发时间增加了。所以还是要由开发者决定是否使用严格模式。