JavaScript 是一种广泛使用的编程语言,它有很多功能和特性可以帮助开发者编写出高效、可维护的代码。在这些功能和特性中,严格模式是一项非常值得注意的特性。在 ES5 中引入,严格模式使得 JavaScript 的代码更加安全、可靠。ECMAScript 2018 引入了新的标准,并提供了一些新特性来帮助开发者更好地使用严格模式。
什么是 JavaScript 的严格模式?
JavaScript 的严格模式是一个可选的语言特性,它为 JavaScript 代码的一些行为提供了更加严格的解释和限制。当开启严格模式时,JavaScript 引擎会实施一些额外的规则和检查,这有助于防止一些常见的错误,使得代码更加安全、可靠。
如何使用严格模式?
启用 JavaScript 的严格模式很简单,只需在脚本的顶部添加 'use strict';
即可。例如:
'use strict'; //code here
当使用严格模式时,一些错误的代码行为将被禁止,例如:
- 声明未使用的变量会引起错误
- 在非函数代码块中使用
this
会返回undefined
- 禁止使用一些在 ECMAScript 6 中新增的关键字,例如
let
和const
(在这个关键字被引入 ECMAScript 6 之前,这并不是一个问题)
除了在整个脚本中启用严格模式之外,还可以在函数或模块中启用它,例如:
function myFunction() { 'use strict'; //code here }
ECMAScript 2018 的新特性
ECMAScript 2018 引入了两个新特性,这些技术选项增强了使用严格模式的开发人员的能力。
Rest/Spread 属性
Rest/Spread 属性是 ECMAScript 2018 中新增的一个有用的特性。它可以让你更好地管理函数的参数,并在代码块中使用易于传递的参数列表。例如:
function myFunction(a, b, ...others) { // code here }
在这个例子中,others
变量将包含传递给函数的任何其他参数,即使这些参数未被明确声明。
Promise.prototype.finally()
Promise 类是 ECMAScript 6 中引入的。它们是处理异步操作的有用工具,例如异步请求和异步 I/O 操作。ECMAScript 2018 引入了 Promise.prototype.finally() 方法,这使得 Promise 类更加完善和容易使用。
Promise.prototype.finally() 方法接受一个回调函数,该函数将在 Promise 值解决(不论成功还是失败)时被调用。例如:
myPromise .then(result => { /* resolve */ }) .catch(error => { /* reject */ }) .finally(() => { /* do something here */ });
在这个例子中,无论 Promise 是在 resolve 还是 reject 后调用,finally()方法都将被执行。
结论
随着 ECMAScript 的不断发展,JavaScript 严格模式的使用会对你的代码的安全性和可靠性产生积极影响。ECMAScript 2018 中引入的新特性增强了在严格模式下编写代码的能力。在项目中使用严格模式可以帮助你强制遵守最佳实践和标准,让你的 JavaScript 代码更加优秀。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/67042567d91dce0dc84d9837