Javascript 为什么不';本机内置的t类框架函数?

Javascript 为什么不';本机内置的t类框架函数?,javascript,javascript-framework,Javascript,Javascript Framework,我只是想知道为什么像String.contains()这样的普通函数不是JavaScript核心本身的一部分。我的意思是,尽管JavaScript核心包含了创建基于核心函数的新函数所需的所有函数,但默认情况下,一些明显的函数不可用 有一些很棒的框架基本上扩展了JavaScript核心,但我不明白为什么它们不是本机内置的 另外,例如,jQueryajax()函数比本机XMLHttpRequest对象对开发人员友好得多。对于这样的事情,几乎必须使用框架 那么,为什么JavaScript核心本身中没有

我只是想知道为什么像
String.contains()
这样的普通函数不是JavaScript核心本身的一部分。我的意思是,尽管JavaScript核心包含了创建基于核心函数的新函数所需的所有函数,但默认情况下,一些明显的函数不可用

有一些很棒的框架基本上扩展了JavaScript核心,但我不明白为什么它们不是本机内置的

另外,例如,jQuery
ajax()
函数比本机
XMLHttpRequest
对象对开发人员友好得多。对于这样的事情,几乎必须使用框架

那么,为什么JavaScript核心本身中没有类似的函数呢

有一些很棒的框架 这基本上扩展了 JavaScript内核,但我就是不明白 为什么它们不是本地内置的

我不认为有人有先见之明提前10-15年思考,看看技术的实现将如何发展,在哪些浏览器将支持当前标准化的部分规范,以创建我们在2011年发现有用的实用功能

Javascript是由Eich于1995年创建的,当时的情况大不相同。“Ajax”在当时并不存在,那么人们怎么会认为15-16年后我们需要一些跨浏览器Ajax功能呢?微软在1996年和1999年分别推出了iframe和XMLHttp(Ajax)

如果你在1995年是Brendan Eich,想想浏览器的功能,想想互联网没有现在那么流行,而且缺乏标准化,你会想到这些事情吗?其中很多,比如“Ajax”,甚至都不存在

至于语言的变化,我想说的原因主要是因为IE发布之间有很长的时间,特别是IE6到IE7之间相隔5-6年,IE7仍然有ECMA-262,CSS1/CSS2存在漏洞,那么,如果更新的Javascript特性在采用几年前发布的规范方面进展如此缓慢,它怎么可能支持这些特性呢

这在另一个答案中提到过,但Javascript只是原始Javascript ECMAScript的超集。ECMAScript是Actionscript、Javascript和其他语言的核心,它不包含DOM或XMLHttpRequest之类的方法。浏览器将脚本语言与渲染引擎/DOM绑定,并向环境提供浏览器方法。

与所有其他浏览器一样,为什么X语言没有Y功能?问题答案是:

因为原始语言作者没有包括它


到底为什么?我想只有他们知道。

我认为有一点很重要,那就是JavaScript,也称为ECMAScript,并不一定是一种浏览器语言。它的目的是一种可嵌入的语言,可以在任何程序中使用。像
XMLHttpRequest
这样的东西并不是语言的一部分,它们只是由浏览器提供的一种方式,使语言真正做一些事情,因为纯JavaScript没有内置的操作来与任何东西交互


至于字符串,我不知道为什么语言中遗漏了这么多字符串操作。例如,为什么没有修剪功能?谁知道呢。

我理解你的意思,但JavaScript是一种使用率很高的语言,在我看来,这意味着它的核心会随着时间的推移而发生变化。@pimvdb:一种使用率很高的语言,有多个运行时实现(不同的浏览器)。在这种情况下,添加更多的功能是好的,但这要困难得多。你是对的,在JavaScript的情况下,框架实际上是最简单的解决方案。我只是想知道为什么它不能在本地提供,但我现在明白了为什么,谢谢。我同意你的观点-但是随着时间的推移,语言可能会发生一些变化,变成今天的样子,我想。@pimvdb它可能,但这可能会破坏现有网站的负载,意味着在很长一段时间内,旧浏览器不支持新功能,因此它们无论如何都无法可靠地使用。我不知道——据我所知,JavaScript几乎只在web上使用。无论如何,JavaScript(至少是Chrome的)本机内置了一个
trim()
函数。@pimvdb真的吗?那很好。要么是Chrome添加的,要么是新ECMAScript的一部分。我已经有一段时间没查过绳子上缺少什么了。