Netscape разработала оригинальную версию JavaScript для второй версии своего популярного браузера. Первоначально Netscape 2 был единственным браузером, поддерживающим язык сценариев, и этот язык первоначально назывался LiveScript. Вскоре он был переименован в JavaScript. Это было сделано в попытке нажиться на известности Sun о Java язык программирования получал в то время.
Хотя JavaScript и Java внешне похожи, это совершенно разные языки. Это решение по именованию вызвало множество проблем для начинающих с обоими языками, которые постоянно путают их. Просто помните, что JavaScript - это не Java (и наоборот), и вы избежите путаницы.
Microsoft пыталась захватить долю рынка у Netscape в то время, когда Netscape создавала JavaScript, и поэтому с Internet Explorer 3 Microsoft представила два языка сценариев. На одном из них они основаны на Visual Basic и получили имя VBscript. Вторым был аналог JavaScript, который Microsoft назвала JScript.
Чтобы попытаться превзойти Netscape, в JScript был доступен ряд дополнительных команд и функций, которых не было в JavaScript. JScript также имел интерфейсы к функциональности Microsoft ActiveX.
Поскольку Netscape 1, Internet Explorer 2 и другие ранние браузеры не понимали ни JavaScript, ни JScript, он стал Обычная практика - размещать все содержимое скрипта внутри комментария HTML, чтобы скрыть скрипт от старых браузеры. Новые браузеры, даже если они не могут обрабатывать скрипты, были разработаны для распознавания самих тегов скриптов. и поэтому скрытие скрипта путем размещения его в комментарии не требуется для любых браузеров, выпущенных после IE3.
К сожалению, к тому времени, когда очень ранние браузеры перестали использоваться, люди забыли причину для комментария HTML и так много людей, плохо знакомых с JavaScript, все еще включают эти теперь совершенно ненужные теги. Фактически включение комментария HTML может вызвать проблемы с современными браузерами. Если вы используете XHTML вместо HTML, включая код внутри комментария, вы получите сценарий комментария, а не сценария. Многие современные системы управления контентом (CMS) будут делать то же самое.
Со временем и JavaScript, и JScript были расширены, чтобы ввести новые команды для улучшения их способности взаимодействовать с веб-страницами. Оба языка добавили новые функции, которые работали не так, как соответствующие функции (если таковые имеются) на другом языке.
То, как работают эти два языка, было достаточно схожим, так что можно было использовать распознавание браузера, чтобы определить, был ли браузер Netscape или IE. Затем можно запустить соответствующий код для этого браузера. Поскольку баланс сместился в сторону того, что IE получает равную долю на рынке браузеров с Netscape, эта несовместимость требует разрешения.
Решением Netscape было передать контроль над JavaScript Европейской ассоциации производителей компьютеров (ECMA). Ассоциация официально оформила стандарты JavaScript под названием ECMAscipt. В то же время Консорциум World Wide Web (W3C) начал работу над стандартной объектной моделью документов (DOM), которая будет использоваться для JavaScript и другие языки сценариев имеют полный доступ для манипулирования всем содержимым страницы вместо ограниченного доступа, который был до то время.
До того, как стандарт DOM был готов, Netscape и Microsoft выпустили свои собственные версии. Netscape 4 поставлялся со своим собственным DOM document.layer, а Internet Explorer 4 шел со своим собственным DOM document.all. Обе эти объектные модели документов устарели, когда люди перестали использовать любой из этих браузеров, поскольку все браузеры с тех пор внедрили стандартную модель DOM.
ECMAscript и введение стандартного DOM во всех браузерах пятой и более поздних версий устранили большую часть несовместимостей между Javascript и JScript. Хотя эти два языка все еще имеют свои различия, теперь можно написать код, который может работать как JScript в Internet Explorer и JavaScript во всех других современных браузерах с очень малым количеством функций необходимо. Поддержка определенных функций может отличаться в разных браузерах, но мы можем проверить эти различия, используя функция, встроенная в оба языка с самого начала, которая позволяет нам проверить, поддерживает ли браузер определенный особенность. Протестировав конкретные функции, которые поддерживаются не всеми браузерами, мы сможем определить, какой код подходит для работы в текущем браузере.
Самое большое различие между JavaScript и JScript - это все дополнительные команды, которые поддерживает JScript, которые обеспечивают доступ к ActiveX и локальному компьютеру. Эти команды предназначены для использовать на интранет сайтах где вы знаете конфигурацию всех компьютеров и что все они работают под управлением Internet Explorer.
Осталось еще несколько областей, в которых JavaScript и JScript различаются по средствам, которые они предоставляют для выполнения конкретной задачи. За исключением этих ситуаций, два языка могут считаться эквивалентными друг другу, и поэтому если не указано иное, все ссылки на JavaScript, которые вы видите, также обычно включают JScript.