在JavaScript中不使用严格模式的原因是什么?

10

我一直在思考,在没有特定上下文的情况下,是否有不使用JavaScript严格模式的理由?我几乎从未在JS中没有使用过它,从我所阅读的所有相关主题材料来看,它似乎是纯粹有益的,因为不支持的浏览器会忽略该语句。但如果是这种情况,为什么浏览器不总是首先使用严格模式呢?


3
没有理由不使用它。你已经给出了答案 :) - 请注意,你应该将其用在局部范围内,而不是全局范围内,否则可能会破坏从导入的代码中的特性! - Niccolò Campolungo
当它们可以共存时,为什么要这样做呢? - Arun Killu
据我理解,严格模式的存在是为了消除与宽松的JavaScript标准相关的问题,因此始终要求使用它会导致通常更清洁的代码。不过,我的理解可能是错误的,因此提出这个问题。 - Fenixp
1个回答

4
我一直在想,没有具体的上下文情境,是否有不使用JavaScript严格模式的理由?
这很主观。
我在JS中几乎从未没有使用过它,并且根据我所读的所有关于此主题的文章,似乎仅有好处,因为不支持严格模式的浏览器只会忽略该语句,但如果是这样,为什么不总是在第一时间使用严格模式呢?
因为如果页面使用JavaScript依赖非严格模式的功能,那么该代码将会出错。
严格模式并非100%向后兼容。这就是为什么必须由编写JS的人打开它的原因。

1
这恰恰是令我困惑的问题:从我的角度和我所读到的(毕竟,大多数关于严格模式的文章都是由对该功能热衷的人撰写的,因此在对此问题的看法上非常积极),严格模式似乎解决了许多JavaScript存在的实际问题。不是这样吗?它会变得过于限制,或者删除语言的基本功能吗? - Fenixp
2
在严格模式出现之前编写的代码可能无法正常工作。 - user253751

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接