Подтвердить что ты не робот

Почему JavaScript называется "скриптовый язык"?

Как гласит название, я хочу знать точную причину, по которой JavaScript называется "скриптовым языком"?

Я понимаю это потому, что JavaScript интерпретируется только браузером (а не компилируется). Исправьте меня, если я ошибаюсь.

Но если компиляции нет, то как получится 0 == '' true? Не компилятор принуждает значения, или это движок JavaScript...? Я немного смущен.

4b9b3361

Ответ 1

Я думаю, что первые два предложения из wikipedia достаточно ясны:

Язык сценариев, script язык или язык расширения - это программирование языка, который позволяет контролировать одно или много программ Приложения). Языки, выбранные для часто используются сценарии более высокий уровень, чем язык, используемый хост-приложение...

В этом случае приложение является браузером. А насчет компиляции:

Скрипты часто, но не всегда, интерпретируется из источника код или "полукомпилированный" байт-код который интерпретируется, в отличие от с которыми они связаны, которые традиционно составляются для собственный машинный код для системы на которые они запускают

О 0, равном '', принуждение не обязательно достигается компилятором; все о движке JavaScript во время выполнения.

Мне жаль, что я взял все из Википедии, но это так ясно, и я цитирую его

PS: Мне тоже стоит вставить это:

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

Ответ 2

Вы частично правы. Язык сценариев - это, в основном, язык, который не стоит сам по себе; он "скрипты" другого приложения (в данном случае, браузера). Я думаю, что вы думаете о интерпретируемом языке. То, что это по существу означает, состоит в том, что оно не скомпилировано (по крайней мере, не в традиционном смысле), оно "интерпретируется" из исходного кода. Ваш пример фактически не имеет ничего общего с компиляцией. Преобразование типа из строки в целое выполняется во время выполнения.

Ответ 3

Чтобы понять, почему JavaScript является языком сценариев? Сначала мы понимаем, почему Java не является языком сценариев.

Я думаю, что Scripting означает написанный текст проекта, игру и т.д., который читается непосредственно игроками, без интерпретатора между игроком и Script.

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

Но Jave требует, чтобы компилятор и интерпретатор конвертировали написанное Java-кодирование в формате, читаемом компьютером, и отображали вывод. Поэтому Java не является языком сценариев, а JavaScript - языком сценариев.

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

Ответ 4

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

Это означает:

  • он интерпретируется при запуске, он не компилируется
  • Ему предоставляется ограниченный доступ к системе, обычно, хотя конкретный API
  • Обычно это только вызовы API, которые помогают ему достичь намеченной цели и не более того (хотя могут использоваться сторонние дополнения)

Ответ 5

Идея языка сценариев - это тот, который инструктирует хост выполнять ряд действий (что очень похоже на актера, читающего из script).

Javascript сообщает обозревателю, что делать и как обрабатывать вещи точно так же, как для своих соответствующих хостов используется оболочка script, php или любой другой язык сценариев.

Ответ 6

Обновление для 2017

"Языки сценариев очень похожи на непристойность. Я не могу определить это, но я это узнаю, когда увижу". - Ларри Уолл

В целях этого ответа предположим, что это означает, что:

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

Javascript действительно в какой-то момент считался языком сценариев, с базовыми функциями для управления DOM, выполняет проверку формы и заставляет Иисуса танцевать. Он был выполнен непосредственно из источника с помощью интерпретатора.

Но за последние несколько лет JS значительно созрел, с такими расширенными функциями, как lambdas, классы (к лучшему или худшему), деструктурирование, итераторы и модули, которые привносят свои возможности наравне с большинством других современных языков. Больше не ограничивается браузером, также обычно он работает автономно на сервере под NodeJS.

Javascript теперь универсально JIT скомпилирован либо в байт-код (например, Java и С#), либо непосредственно в машинный код (например, C и С++). И современные двигатели предлагают фазу оптимизации, аналогичную большинству традиционных скомпилированных языков.

V8 (Chrome, Node)

V8 компилирует JavaScript непосредственно на собственный машинный код перед его выполнением.

Код Chakra (Edge)

Chakra Core [can] делает параллельную компиляцию JIT...

SpiderMonkey (Firefox)

SpiderMonkey 38 включает компилятор "точно в момент времени" (JIT), который компилирует JavaScript для машинного кода...

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