blink() 方法真的已经被弃用了吗?

3
我不是指臭名昭著的HTML元素 <blink>, 而是JavaScript函数String.prototype.blink。 我的链接中的MDN页面 - 以及谷歌找到的其他一些来源 - 表明这是一个被弃用的特性(W3Schools甚至更进一步,将其列为非标准的,并错误地指出它不受任何当前浏览器的支持,但无论如何...)

alert("Hello World!".blink());

阅读ES6规范文件(当前RC为34)后,我并没有找到任何证据支持这些说法:显然,规范中没有表明 blink 方法已被弃用、过时或非标准。

对于其他字符串方法bigboldfixedfontcolorfontsizeitalicsstrikesubsup也是如此:虽然相应的HTML元素已经被弃用,但JavaScript方法似乎并没有被弃用。

当然,我的来源可能不准确,但MDN参考通常是相当可靠的,所以我怀疑我在这里忽略了什么。

有人能否确认或否定 blink 方法已被弃用的事实?感谢提供来源。


2
我在ES5或ES6规范中找不到“deprecated”这个词,所以我不确定它们是否承认这样的事情。 - ssube
@ssube 我也注意到了,但是我想知道是谁决定哪些东西被弃用,哪些不被弃用。 - GOTO 0
这让我相信没有人这样做。DOM / DOM API组可能会在他们的一侧弃用标签,但如果ES没有将任何内容标记为弃用,则实际上没有任何方法被弃用。 - ssube
4个回答

3
由于ES5和ES6规范中都没有出现“deprecated”这个词,这使我相信其中的任何方法都未被废弃。但它们是否应该被废弃是完全不同的问题...
它们可能会生成已被HTML或DOM API负责的工作组废弃的标签,但ECMAScript规范似乎并不认可(或至少不使用)废弃的方法或类的概念。
一般来说,JavaScript没有废弃的概念,即使在语言内部也是如此,正如这个问题所讨论的那样。一些语言特性被广泛认为是模糊的或不良实践,例如with语句,在我能找到的任何官方参考资料中都没有标记为“废弃”。像unescape这样的方法在MDN文档中被标记为废弃,但不在规范中。

2
JavaScript和HTML(至少在客户端)是联系在一起的。根据MDN的说法,blink方法将会执行以下操作:
blink()方法创建一个HTML元素,使字符串闪烁。
由于标签已被弃用,或至少被分类为非符合特性...
该元素是一个非标准元素。HTML5将其分类为非符合特性。来源:http://www.w3.org/wiki/HTML/Elements/blink 由于blink方法生成这样一个弃用标签,我认为可以推断出JavaScript方法也已经过时了。但是,我找不到任何官方资料,证明这个说法,因此我知道这个答案还不够完美。
-编辑-
如@ssube在评论中指出:A)ES6标准甚至没有最终确定,B)它的草案(可以在此处找到:http://wiki.ecmascript.org/doku.php?id=harmony:specification_drafts)甚至没有“弃用”这个词。因此,在某种意义上,blink方法并没有被弃用,因为没有任何东西被弃用。
然而,由于它生成了一个弃用标签,任何负责任的文档站点(例如MDN)都会将其列为弃用,这就是其“已弃用”状态的真正来源。

Firefox(我正在运行35.0版本)仍然支持blink()函数,并在输入"text".blink()时返回"<blink>text</blink>"。这意味着该函数返回已弃用的HTML,因此该函数本身也不应再使用。 - Arjan

2

是的


我认为在附录B中定义所有这些方法的顶部描述已经很清楚了(重点在于我):

当ECMAScript宿主是Web浏览器时,本附录中定义的ECMAScript语言语法和语义是必需的。本附录的内容是规范性的,但如果ECMAScript宿主不是Web浏览器,则是可选的。

注意: 本附录描述了基于Web浏览器的ECMAScript实现的各种遗留特性和其他特性。 本附录中指定的所有语言特性和行为都具有一个或多个不良特征,并且在没有遗留用途的情况下将从本规范中删除。 然而,这些特性被大量现有网页的使用意味着Web浏览器必须继续支持它们。本附录中的规范定义了这些遗留特性的互操作实现要求。

这些特性不被认为是核心ECMAScript语言的一部分。编程人员在编写新的ECMAScript代码时不应使用或假设存在这些特性和行为。 ECMAScript实现不鼓励实现这些特性,除非实现是Web浏览器的一部分,或者需要运行Web浏览器遇到的相同的遗留ECMAScript代码。


请注意,大多数字符串方法在ES5中没有提及。就像往常一样,当涉及到Web时,浏览器供应商会自己添加自定义扩展。在这种情况下,TC39委员会认为至少提到它们在规范中是重要的。


-1

2
@GOTO 9在他们的问题中特别提到了MDN(你链接的网站);据我理解,他们非常清楚MDN,但正在寻找更加权威的来源。 - machineghost

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