Чем отличается от js
Перейти к содержимому

Чем отличается от js

  • автор:

Чем отличаются JavaScript и ECMAScript?

Как-то мы попробовали гуглить «различие между JavaScript и ECMAScript».

В итоге пришлось пробираться сквозь море двусмысленных и, казалось бы, противоречивых результатов:

«ECMAScript — это стандарт».
«JavaScript — это стандарт».
«ECMAScript — это спецификация».
«JavaScript — это реализация стандарта ECMAScript».
«ECMAScript — стандартизованный JavaScript».
«ECMAScript — это язык».
«JavaScript — это диалект ECMAScript».
«ECMAScript — это JavaScript».

Сдерживая желание заплакать, мы постарались овладеть собой и провели трудоемкое, но продуктивное исследование.

В этой статье представлено наше понимание различий между JavaScript и ECMAScript. Статья написана для тех, кто знаком с JavaScript, но хочет получить более четкое представление о его взаимоотношениях с ECMAScript, веб-браузерами, Babel и так далее. Вы также узнаете о скриптовых языках, движках JavaScript и средах выполнения JavaScript.

Словарь JavaScript/ECMAScript

Ниже приведен список определений, составленный с упором на согласованность и ясность. Определения не совсем полны. Они построены таким образом, чтобы вы хорошо разобрались в связях и родстве между JavaScript и ECMAScript.

Ecma International

Организация, которая создает стандарты для технологий.

Чтобы проиллюстрировать пример «стандарта» (хотя и созданного не в Ecma): вспомните обо всех клавиатурах, которые вы когда-либо использовали. В подавляющем большинстве случаев раскладка была одинаковой? А пробел, клавиша Enter, курсорные клавиши? Цифры находились в верхнем ряду? Это объясняется тем, что большинство разработчиков используют при создании дизайна клавиатуры стандарт раскладки QWERTY.

ECMA-262

Это стандарт, изданный Ecma International. В нём прописана спецификация скриптового языка общего назначения.

ECMA-262 — это стандарт, подобный QWERTY, только представляющий собой спецификацию скриптового языка, называющегося ECMAScript.

ECMA-262 можно считать учётным номером ECMAScript.


ECMA-260, ECMA-261, ECMA-262. А вот и ECMAScript.

Скриптовый язык

Язык программирования, созданный для работы с существующим объектом или системой.

Чтобы понять, как язык программирования становится скриптовым языком, рассмотрим команды «ходить», «бегать» и «прыгать». Их кто-то должен выполнять, например, человек, собака или персонаж видеоигры. Без выполняющего команды актера все эти «ходить», «бегать» и «прыгать» не имеют смысла. Этот набор действий аналогичен скриптовому языку, который предназначен для управления внешним объектом.

ECMAScript

Описанная в ECMA-262 спецификация создания скриптового языка общего назначения.

Синоним: спецификация ECMAScript.

«ECMA-262» — это название и стандарта, и спецификации скриптового языка ECMAScript.

ECMAScript содержит правила, сведения и рекомендации, которые должны соблюдаться скриптовым языком, чтобы он считался совместимым с ECMAScript.


Выдержка из спецификации языка ECMAScript 2017. Документ состоит примерно из 900 страниц, если вы ищете, что почитать на досуге.

JavaScript

Скриптовый язык общего назначения, соответствующий спецификации ECMAScript.

Это диалект языка ECMAScript.

JavaScript — мой любимый язык программирования, пропитанный ароматом кофе. ECMAScript — это спецификация, на которой он основан. Из спецификации ECMAScript вы узнаете, как создать скриптовый язык, а из документации JavaScript — как использовать скриптовый язык.

Когда люди называют JavaScript «диалектом языка ECMAScript», они имеют в виду то же самое, что и при упоминании о диалектах английского, французского или китайского языка. Диалект большую часть своего лексикона и синтаксиса наследует из родительского языка, от которого при этом заметно отличается.

Как сказано в ECMA-262, JavaScript в основном реализует спецификацию ECMAScript, но с некоторыми отличиями. Mozilla в общих чертах обрисовала свойства JavaScript, не характерные для ECMAScript:


Скриншот от 3 сентября 2017 года. Это список экспериментально проверенных характерных особенностей JavaScript, которые не являются частью ECMAScript (по крайней мере, пока).

JavaScript-движок

Программа или интерпретатор, способный понимать и выполнять JavaScript-код.

Синонимы: интерпретатор JavaScript, реализация JavaScript.

JavaScript-движки обычно используются в веб-браузерах, включая V8 в Chrome, SpiderMonkey в Firefox и Chakra в Edge. Каждый движок подобен языковому модулю, который позволяет приложению поддерживать определенное подмножество языка JavaScript.

Для браузера JavaScript-движок — это как для человека способность понимать речь. Если опять обратиться к нашему примеру с «ходить», «бегать» и «прыгать», то JavaScript-движок — часть «объекта», который на самом деле понимает, что означают эти действия.

Эта аналогия помогает объяснить некоторые особенности браузера:

Разное быстродействие браузеров

Два человека поймут команду «прыгать», но один из них отреагирует раньше, потому что смог быстрее понять и обработать команду. Аналогично, два браузера могут понимать код JavaScript, но один из них работает быстрее, потому что его JavaScript-движок работает эффективнее.

Разная поддержка в браузерах

Рассмотрим большую группу людей, говорящих по-английски. Кто-то среди них может знать определенные слова, выражения и синтаксические правила, не известные другим людям, и наоборот. То же самое с браузерами. Хотя все браузерные JavaScript-движки понимают JavaScript, некоторые понимают его лучше других. Различаются и способы поддержки языка браузерами.

Говоря о поддержке в браузерах, обычно упоминают о «совместимости с ECMAScript», а не о «совместимости с JavaScript», хотя JavaScript-движки детально анализируют и выполняют… JavaScript. Звучит запутанно, позвольте объяснить.


Это часть таблицы, посвящённой браузерной поддержке ECMAScript. Версии JavaScript в ней не упоминаются.

Как вы помните, ECMAScript — это спецификация того, как может выглядеть скриптовый язык. Появление новой версии ECMAScript не означает, что у всех движков JavaScript появятся новые функции. Всё зависит от групп или организаций, которые отвечают за обновления JavaScript-движков с учётом новейшей спецификацией ECMAScript.

Поэтому разработчики, как правило, задают вопросы вроде «Какую версию ECMAScript поддерживает этот браузер?» или «Какие функции ECMAScript поддерживает этот браузер?» Они хотят знать, удалось ли Google, Mozilla и Microsoft наделить JavaScript-движки (соответственно V8, SpiderMonkey и Chakra) свойствами, описанными в последней версии ECMAScript.

Ответы на многие вопросы вы найдёте в Таблице совместимости ECMAScript.

Если выйдет новая версия ECMAScript, то в JavaScript-движках не появятся разом все нововведения. Они будут внедряться постепенно, релиз за релизом, как это видно на примере журнала изменений JavaScript в Firefox:


Какие-то части стандартов ES2015 и ES2017 были реализованы в JavaScript-движке SpiderMonkey в браузере Firefox 50. Ещё раньше были реализованы другие части ES2015 и ES2017, и это продолжилось в последующих версиях.

Среда выполнения JavaScript

В этой среде выполняется JavaScript-код и интерпретируется JavaScript-движком. Среда выполнения предоставляет хост-объекты, на которых и с которыми может работать JavaScript.

Синонимы: хост-среда (Host environment).

Среда выполнения JavaScript — это «существующий объект или система», упомянутые в определении скриптового языка. Код проходит через JavaScript-движок, в котором объект или система анализирует код и разбирает его работу, а потом выполняет интерпретированные действия. Собака идет, человек бежит, персонаж видеоигры прыгает (или разрушает, как на картинке).

JavaScript-скрипты могут обращаться к приложениям, потому что те предоставляют «хост-объекты» в среде выполнения. На клиентской стороне средой выполнения JavaScript будет веб-браузер, в котором становятся доступными для манипуляций такие хост-объекты, как окна и HTML-документы. Вы когда-нибудь работали с хост-объектами в виде окна или документа? Такие объекты не являются частью базового JavaScript. Это веб-API, объекты, предоставляемые браузером, действующим как хост-среда JavaScript.

На серверной стороне среда выполнения JavaScript — это Node.js. В Node.js предоставляются связанные с сервером хост-объекты, такие как файловая система, процессы и запросы.

Любопытно, что разные среды выполнения JavaScript могут использовать один и тот же JavaScript-движок. Например, V8 — это движок, используемый в двух совершенно разных средах — в Google Chrome и Node.js.

ECMAScript 6

Это шестая редакция стандарта ECMA-262, внёсшая в спецификацию ECMAScript существенные изменения и улучшения.

Синонимы: ES6, ES2015 и ECMAScript 2015.

С 2015 года Ecma International перешла на ежегодные релизы ECMAScript, и эту версию ECMAScript переименовали с ES6 на ES2015. Ecma International стала называть новые версии спецификации ECMAScript в соответствии с годом выпуска. То есть ES6 и ES2015 — это одно и то же.

Babel

Транспилятор, конвертирующий код ES6 в код ES5.

В ES6 разработчикам доступны замечательные новые функции, но нельзя забывать и о межбраузерной совместимости. Во время написания этой статьи Edge и Internet Explorer поддерживают не все функции из спецификации ES6.

При желании, разработчики могут с помощью Babel преобразовать — транспилировать — код ES6 в функционально эквивалентную версию, использующую только функции ES5. Все основные браузеры полностью поддерживают ES5, поэтому транспилированный код будет работать без каких-либо проблем.

Ещё кое-что

Надеюсь, вы узнали что-то для себя новое о JavaScript и ECMAScript. Прежде чем закончить, хотелось бы ещё кое-что разъяснить начинающим веб-разработчикам.

Курица или яйцо

JavaScript был создан в 1996 году. В 1997 году Ecma International предложила стандартизировать JavaScript, и в результате появился ECMAScript. Но поскольку JavaScript соответствует спецификации ECMAScript, JavaScript является примером реализации ECMAScript.

Получается, что ECMAScript основан на JavaScript, а JavaScript основан на ECMAScript.

Да, это смахивает на затёртый кинематографический штамп, когда путешественники во времени становятся своими собственными родителями. Забавно, хотя и немного странно.

Понимаем, что всё здесь сказанное немного вас позабавило, но надеемся, что вы получили пищу для размышлений. Позвольте откланяться.

ES6, ES8, ES2017: что такое ECMAScript и чем это отличается от JavaScript

Изучение JavaScript может сбить с толку по множеству причин, и одна из них — акронимы. Чтобы не дать сокращениям сбить вас с толку, в этой статье мы разберём их значения и историю возникновения.

Что такое ECMAScript?

Сначала немного истории. JavaScript создавался как скриптовый язык для Netscape. После чего он был отправлен в ECMA International для стандартизации (ECMA — это ассоциация, деятельность которой посвящена стандартизации информационных и коммуникационных технологий). Это привело к появлению нового языкового стандарта, известного как ECMAScript.

Последующие версии JavaScript уже были основаны на стандарте ECMAScript. Проще говоря, ECMAScript — стандарт, а JavaScript — самая популярная реализация этого стандарта.

Что такое ES? История версий

ES — это просто сокращение для ECMAScript. Каждое издание ECMAScript получает аббревиатуру ES с последующим его номером. Всего существует 8 версий ECMAScript. ES1 была выпущена в июне 1997 года, ES2 — в июне 1998 года, ES3 — в декабре 1999 года, а версия ES4 — так и не была принята. Не будем углубляться в эти версии, так как они морально устарели, а рассмотрим только последние четыре.

ES5 был выпущен в декабре 2009 года, спустя 10 лет после выхода третьего издания. Среди изменений можно отметить:

  • поддержку строгого режима (strict mode);
  • аксессоры getters и setters ;
  • возможность использовать зарезервированные слова в качестве ключей свойств и ставить запятые в конце массива;
  • многострочные строковые литералы;
  • новую функциональность в стандартной библиотеке;
  • поддержку JSON.

Версия ES6/ES2015 вышла в июне 2015 года. Это также принесло некую путаницу в связи с названием пакета, ведь ES6 и ES2015 — это одно и то же. С выходом этого пакета обновлений комитет принял решение перейти к ежегодным обновлениям. Поэтому издание было переименовано в ES2015, чтобы отражать год релиза. Последующие версии также называются в соответствии с годом их выпуска. В этом обновлении были сделаны следующие изменения:

  • добавлено деструктурирующее присваивание;
  • добавлены стрелочные функции;
  • в шаблонных строках можно объявлять строки с помощью ` (обратных кавычек). Шаблонные строки могут быть многострочными, также могут интерполироваться;
  • let и const — альтернативы var для объявления переменных. Добавлена «временная мертвая зона»;
  • итератор и протокол итерации теперь определяют способ перебора любого объекта, а не только массивов. Symbol используется для присвоения итератора к любому объекту;
  • добавлены функции-генераторы. Они используют yield для создания последовательности элементов. Функции-генераторы могут использовать yield* для делегирования в другую функцию генератора, кроме этого они могут возвращать объект генератора, который реализует оба протокола;
  • добавлены промисы.

ES2016 (ES7) вышла в июне 2016 года. Среди изменений в этой версии ECMAScript можно отметить:

  • оператор возведения в степень ** ;
  • метод Array.prototype.includes , который проверяет, содержится ли переданный аргумент в массиве.

Спустя еще год выходит версия ES2017 (ES8). Данный стандарт получил следующие изменения:

Джава и JS: что это, чем отличаются друг от друга

Языки программирования начали свое активное развитие с появлением компьютерной техники. Огромной популярностью сегодня пользуются два крупных семейства – Си и Джава. Оба имеют свои преимущества и недостатки. Но Java – это то, что должен знать каждый программер. Особенно начинающий.

Этот «способ общения» с компьютерами отличается своей простотой. Изучая данное семейство, можно обнаружить, что есть «просто Джава», а есть – JavaScript. Соответствующие языки программирования обладают существенными различиями. О них необходимо знать перед тем, как приступать к изучению оных. В данной статье будет рассказано о том, когда применять джаваскрипт, а когда – просто Java. Также раскроются особенности каждого варианта.

Что такое Java

Задумываясь, какой язык использовать – Java или все же JavaScript, важно понимать разницу между этими двумя способами общения с компьютером. Они принадлежат к одному крупному семейству, поэтому не исключена путаница.

Java – это язык, при помощи которого можно создавать разнообразные программы. Выступает вычислительной платформой. Утилиты, написанные на Java, производят обработку байтов кодов, после чего осуществляют передачу инструкций задействованным устройствам.

Был создан в 1995 году. Создателем выступила компания Sun Microsystems. Джава – простой и интересный язык, который легко использовать даже новичкам. Программы, написанные на нем – байт-код. Он выполняются на всех компьютерах. Для реализации используется собственная виртуальная Java машина.

Особенности языка

Java или все же JavaScript использовать при решении общих задач по программированию? Перед выбором стоит уделить внимание каждому варианту. Они имеют собственные нюансы и особенности.

Джава – язык, работа с которым доставляет минимум хлопот. Его преимущества – это:

  • кроссплатформенность;
  • наличие собственной виртуальной машины;
  • высокий уровень защиты;
  • простой синтаксис, с которым справится даже новичок;
  • скорость обработки кодификаций;
  • бесплатное распространение на постоянной основе.азме

Подойдет для любой операционной системы. Джава подойдет как начинающему программисту, так и продвинутому разработчику.

JavaScript – описание

Задумываясь над отличиями Java и так называемого JavaScript, стоит разобраться, что собой представляет второй способ общения с техническими устройствами.

Джаваскрипт – это мультипарадигменный способ создания веб-страниц. Можно сказать, что данная вариация помогает писать скрипт, обрабатываемый браузерами. Создателем выступила компания Netscape.

Ключевые особенности

Джаваскрипт – популярный язык веб-программирования. Приложения, написанные на нем, работают стабильно и достаточно быстро.

К особенностям JavaScript принято относить следующие моменты:

  • простую адаптацию для всех операционных систем;
  • наличие ООП;
  • работу с императивными и функциональными стилями;
  • отсутствие возможности работы с низкоуровневыми средствами.

Как и в случае с Java, JavaScript обладает простым синтаксисом и весьма быстрой обработкой написанных кодификаций. Его тоже сможет освоить даже новичок. Если уже был опыт работы с Джава, Джава Скрипт не доставит никаких существенных хлопот.

Области применения

Задумываясь, какие отличия имеют рассматриваемые методы написания программных кодов, важно понимать – их достаточно много. Несмотря на то, что оба варианта относятся к одному семейству, они используются для различных целей.

Java подойдет для разработки:

  • игр (включая консольный софт);
  • «серьезных» приложений;
  • разнообразных программ для выполнения тех или иных задач на устройствах.

JavaScript – это несколько иная сфера применения. Так как язык является способом общения с браузером, то задействуется он при создании:

  • расширений;
  • плагинов;
  • веб-сайтов (живых, действующих, активных);
  • разнообразного софта, функционирующего в сети Интернет.

Это – первый момент, на который необходимо обратить внимание. Представленные Джавы не позволяют выполнять одни и те же функции, несмотря на то, что это похожие способы написания программных кодификаций.

История создания

Второй момент – это история создания. JavaScript появился чуть раньше. Его изобрела компания NetScape с появлением интернета. А именно – в 1990 году. Возник данный «Скрипт» всего за 10 суток. Изначально носил название Live Script. Позже был переименован в JavaScript. Это произошло в 1995.

Java стал популярным и распространенным примерно в те же годы. Активное внедрение произошло в 1995 году. Но сделала это совершенно другая компания – Sun Microsystems. Разработка велась с 1991. Сохранил свое название с самого начала истории.

Браузерная совместимость

Размышляя, какой язык выбрать – Java или более интересный JavaScript при написании браузерных приложений, необходимо обратить внимание на совместимость соответствующих вариантов с утилитами.

У обоих языков есть:

  • фреймворки;
  • библиотеки.

Данные средства позволяют запускать браузерный софт на всех устройствах. Но JavaScript изначально создавался как веб-язык. Он лучше адаптирован. Отлично работает с серверами в отличие от Java.

Методики выполнения

Java или выбрать JavaScript при разработке софта, иногда довольно трудно. Призводится тщательно изучать особенности каждого варианта. Обе версии немного похожи между собой. Особенно для «среднестатистического пользователя». Разработчики же должны четко понимать, с чем им предстоит иметь дело.

Методики выполнения и обработки кода здесь разные. Ява требует для обработки кодификации виртуальную машину. Она называется JVM. Без нее утилита, написанная на выбранном языке, не будет работать.

В случае с JavaScript ситуация обстоит иначе. Для того, чтобы код прошел обработку, достаточно воспользоваться обычным браузером. Никакого иного дополнительного софта здесь не потребуется ни при каких обстоятельствах.

Ключевые моменты кодов

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

Выбирая, на чем остановиться – Java или на JavaScript, рекомендуется учитывать следующие моменты:

  1. Типы данных. Они в Джаве имеют строгое определение. В JavaScript для определения оных (причем всех и сразу) применяется ключевик «var».
  2. В Джаве объекты основаны на так называемых классах. JavaScript же требует использования прототипов при работе с соответствующими элементами.
  3. Оба рассматриваемых варианта имеют функции многопоточности, но они отличаются в каждом конкретном случае. Джава использует поддержку оной, в то время как в JavaScript она отсутствует.
  4. Расширения файлов будут соответственно иметь «названия» .java и .js.
  5. Кодификация, написанная на Джаве, может работать самостоятельно. Этого нельзя сказать о JavaScript. Здесь код будет размещаться в пределах HTML.

Функциональные особенности тоже не нужно обходить стороной, выбирая между Java или все же JavaScript. В первом случае больше функций и API. Поэтому он позволяет решать большее количество сложных задач.

Среди основных отличий Java, а также JavaScript можно выделить вопрос безопасности. Джава – это более мощный, безопасный и стабильный вариант. Связано это с тем, что находящиеся в пределах HTML кодификации всегда рискуют «попасть под удар», нежели самостоятельные приложения.

Ключевые современные отличия

С самого своего основания рассматриваемые методы общения с устройствами и утилитами подлежали многочисленным доработкам. Сейчас это два весьма функциональных, простых и удобных языка. У них не так мало общего, но и разница все равно есть.

Помимо ранее перечисленных моментов необходимо учитывать следующие современные различия. Они помогут выбрать, на чем остановиться – Java или же JavaScript:

  1. Стилизация. В случае с Джава коды записываются в IDE, после чего компилируются виртуальной машиной. Пользователи не могут его прочесть. JS реализуется посредством собственных механизмов и синтаксиса. Его удается просмотреть «обычному пользователю».
  2. Сообщества. Java применяется для того, чтобы принимать входную информацию о будущих включениях при помощи запросов сертификации. Все это позволяет продумывать последующую реализацию языковых кодов.
  3. Развертка и процесс написания. Если возникает вопрос о том, что использовать – Java или же JavaScript, требуется запомнить – когда хотите почувствовать себя настоящим разработчиком, нужно отдавать предпочтение первому варианту. Он создавался как язык разрабов. Код прописывается один раз, после чего осуществляется его развертка в любой ОС. Вносить изменения не нужно. JS же обладает восприимчивостью к корректировкам среды.

Теперь понятно, что лучше выбирать – Java или же JavaScript. Можно сделать вывод о том, что Джава идеально подходит для «обычного программирования». На нем создаются сложные и интересные программы, игры, развлекательный контент. Если же требуется сделать упор на веб-сервисы и браузеры, рекомендуется присмотреться ко второму раскладу.

Когда не получается решить, что изучать в первую очередь – Java или же JavaScript, можно посетить специализированные дистанционные онлайн курсы. Они помогут довольно быстро изучить основы обоих языков. После этого каждый сможет выбрать, на чем заострить внимание в каждом конкретном случае. Или же отыскать ново е направление для дальнейшего углубления в программирование.

What is the difference between JavaScript and ECMAScript?

What’s the difference between ECMAScript and JavaScript? From what I’ve deduced, ECMAScript is the standard and JavaScript is the implementation. Is this correct?

15 Answers 15

I think a little history lesson is due.

JavaScript was originally named Mocha and changed to Livescript but ultimately became JavaScript.

It’s important to note that JavaScript came before ECMAscript and the history will tell you why.

To start from the beginning, JavaScript derived its name from Java and initially Brendan Eich (the creator of JS) was asked to develop a language that resembled Java for the web for Netscape.

Eich, however decided that Java was too complicated with all its rules and so set out to create a simpler language that even a beginner could code in. This is evident in such things like the relaxing of the need to have a semicolon.

After the language was complete, the marketing team of Netscape requested Sun to allow them to name it JavaScript as a marketing stunt and hence why most people who have never used JavaScript think it’s related to Java.

About a year or two after JavaScript’s release in the browser, Microsoft’s IE took the language and started making its own implementations such as JScript. At the same time, IE was dominating the market and not long after Netscape had to shut its project.

Before Netscape went down, they decided to start a standard that would guide the path of JavaScript, named ECMAScript.

ECMAScript had a few releases and in 1999 they released their last version (ECMAScript 3) before they went into hibernation for the next 10 years. During this 10 years, Microsoft dominated the scenes but at the same time they weren’t improving their product and hence Firefox was born (led by Eich) and a whole heap of other browsers such as Chrome, Opera.

ECMAScript released its 5th Edition in 2009 (the 4th edition was abandoned) with features such as strict mode. Since then, ECMAScript has gained a lot of momentum and is scheduled to release its 6th Edition in a few months from now with the biggest changes its had thus far.

You can use a list of features for ECMAScript 6 here http://kangax.github.io/es5-compat-table/es6/ and also the browser support. You can even start writing Ecmascript 6 like you do with CoffeeScript and use a compiler to compile down to Ecmascript 5.

Whether ECMAScript is the language and JavaScript is a dialect is arguable, but not important. If you continue to think like this it might confuse you. There is no compiler out there that would run ECMAScript, and I believe JavaScript is considered the Language which implements a standard called ECMAScript.

There are also other noticeable languages that implement ECMAScript such as ActionScript (used for Flash)

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *