Почему фреймворк-подобные функции не встроены изначально? - PullRequest
3 голосов
/ 27 февраля 2011

Мне просто интересно, почему тривиальные функции, такие как String.contains(), не являются частью самого ядра JavaScript.Я имею в виду, что хотя ядро ​​JavaScript содержит все функции, необходимые для создания новых функций, основанных на основных, некоторые очевидные функции по умолчанию недоступны.там, которые в основном расширяют ядро ​​JavaScript, но я просто не понимаю, почему они не встроены изначально.

Также, например, функция jQuery ajax() гораздо более удобна для разработчиков, чем нативнаяXMLHttpRequest объект.Для таких вещей почти необходимо использовать фреймворки.

Так почему подобные функции недоступны в самом ядре JavaScript?

Ответы [ 3 ]

4 голосов
/ 27 февраля 2011

Есть несколько отличных рамок там, которые в основном расширяют Ядро JavaScript, но я просто не понимаю почему они не встроены изначально.

Я не думаю, что у кого-то хватило предвидения подумать за 10-15 лет вперед и посмотреть, как будут реализовываться реализации технологий, с точки зрения того, какие браузеры будут поддерживать части спецификаций, которые в настоящее время были стандартизированы для создать эти полезные функции, которые мы находим полезными в 2011 году.

Javascript был создан в 1995 году Эйхом, и ландшафт сильно отличался. «Ajax» в то время не существовало, так как кто-то мог подумать, что через 15-16 лет нам понадобится кросс-браузерная функциональность Ajax? Microsoft представила iframe в 1996 году и XMLHttp (Ajax) в 1999 году.

Если бы вы были Бренданом Айхом в 1995 году и задумывались о функциональности браузеров и о том, что Интернет не так популярен, как сейчас, и не было стандартизации - вы бы подумали об этом? Многие из которых, такие как «Аякс», даже не существовали?

Что касается изменения языка, причина, по которой я бы сказал, в первую очередь потому, что между выпусками IE было огромное количество времени, в частности IE6 - IE7, с разницей в 5-6 лет, и IE7 все еще имел ECMA-262. , CSS1 / CSS2 ошибки, так как, возможно, будет поддерживаться более новые функции Javascript, если они будут слишком медленными, чтобы принять спецификации, выпущенные годами ранее.

Это было упомянуто в другом ответе, но Javascript - это просто расширенный набор исходного Javascript, ECMAScript. ECMAScript, ядро, на котором построены Actionscript, Javascript и другие языки, не включает DOM или методы, такие как XMLHttpRequest. Браузер связывает язык сценариев с механизмом рендеринга / DOM и предоставляет методы браузера в среду.

1 голос
/ 27 февраля 2011

Я думаю, важно отметить, что JavaScript, он же ECMAScript, не обязательно должен быть языком браузера. Он предназначен для встраиваемого языка, который можно использовать в любой программе. Такие вещи, как XMLHttpRequest, не являются частью языка, они просто предоставляются браузером как один из способов заставить язык действительно [i] делать [/ i] что-то, потому что чистый JavaScript не имеет встроенных операций для взаимодействия с чем угодно.

Что касается String, я не уверен, почему так много операций String были оставлены вне языка. Например, почему нет функции обрезки? Кто знает.

1 голос
/ 27 февраля 2011

Как и у всех Почему у языка X нет функции Y? вопросов, ответ:

Потому что авторы оригинального языка не включили его.

Почему именно? Я думаю, только они знают.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...