为什么JavaScript中包含与非语言相关的全局对象?

时间:2012-09-02 17:25:12

标签: javascript

我正在阅读Flanagan的Definitive JavaScript,其中列出了该语言定义的所有JavaScript全局对象。

然而,其中5个(约20个)似乎与非语言相关:

decodeURI
encodeURI
decodeURIComponent
encodeURIComponent
JSON

当URI和JSON更像浏览器服务器时,为什么这些被认为是语言的一部分?

参考

Difference between decodeURI and decodeURIComponent

1 个答案:

答案 0 :(得分:4)

Microsoft在IE5.5中引入了encodeXXXdecodeXXX方法(其次是Netscape 6),后来包含在ECMA-262规范的修订版3/1999中。 JSON之后推出,今天得到了所有主流浏览器的支持,并且包含在ECMA-262规范的第5/2011版中。

这些方法不是原始语言的一部分,也许它们不应该在全局命名空间中。与AJAX一样,这些方法是由特定供应商引入的,后来被其他供应商采用,没有严格和正式的流程。 JavaScript的美丽丑陋的另一个方面。