【发布时间】:2019-03-09 11:09:50
【问题描述】:
ECMAScript 标准here 中提到:
... 这些功能不被视为核心 ECMAScript 的一部分 语言。程序员不应使用或假设存在这些 编写新的 ECMAScript 代码时的特性和行为。 ECMAScript 不鼓励实现这些特性 除非实现是 Web 浏览器的一部分或需要 运行与 Web 浏览器相同的旧版 ECMAScript 代码。
MDN 上还有一个红色警告:String.prototype.substr() MDN doc
有谁知道为什么(ECMAScript 标准这么说)程序员不应该使用或假设String.prototype.substr 的存在?
【问题讨论】:
-
我怀疑
substring打算替换它 - developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/… - 子字符串采用比开始 + 字符数更传统的开始和结束位置。 -
不知道,但我会避免它的一个原因是因为
.substring方法听起来非常相似,但使用结束索引 作为第二个参数,而不是 length。容易混淆,可能,最好只使用一种方法,如果可能的话 -
@eddiewould - “替换”在这里是一个奇怪的术语,因为
substring自从有标准化语言以来就一直使用标准化语言,但substr从来没有。 :-)
标签: javascript standards ecma