深入理解StrictMode
随着应用程序的不断发展,我们已经追求代码的可读性和可重现性。在这个过程中,一个叫做StrictMode的特性被逐渐广泛运用。
什么是StrictMode
StrictMode是Javascript中的一种严格模式,它被设计用来减少一些怪异的行为并制定出更合理的默认行为。启用StrictMode后,既可以避免一些常见的错误,也会更好地支持一些新特性。
在整个程序中启用StrictMode,需要置于文件的最上面指令“usestrict”或指令“usestrict”被包裹在一个函数的其中一个块语句内。
使用StrictMode的好处
StrictMode能帮助您发现更多的代码bug。尤其是,如果您在以前的Javascript代码中启用了StrictMode,则现有生产代码现在可能会触发更多的错误,这些错误可能会导致致命的行为。
StrictMode要求所有变量都必须先声明,换言之,如果变量未在任何语句前声明(可能是由于打字错误),则会引发错误。另外,对只读属性进行修改也会引发错误。
StrictMode还强制执行更严格的JavaScript代码。例如,在启用StrictMode的情况下,Javascript函数中的“this”对象将始终由caller传递,而不是由默认指针“window”指定。
使用StrictMode的注意事项
在旧的代码库中使用StrictMode并不总是一个快速的解决方案。转换现有代码需要时间和经验。更何况,Javascript代码可以以许多种方式与环境进行交互,需要确保所有代码在StrictMode下都能正常工作。
如果需要给JavaScript代码打补丁,并且StrictMode无法正常运行,请考虑使用ECMAScript6的部分特性。例如,使用带有“let”关键字的变量来替换变量。用“const”关键字代替只读属性。
要注意的另一个问题是,代码中的惯用语法不一定是严格模式下的有效语法。例如,更新eval的一些代码将需要进行更改。
总之,StrictMode是Javascript中一个强大的特性,但它需要谨慎使用和了解。它可以帮助您减少许多常见的JavaScript错误,但如果不注意,可能会导致其他问题。