Почему JavaScript называют «языком сценариев»?
спросил
Изменено 3 года, 11 месяцев назад
Просмотрено 40 тысяч раз
Как следует из названия, я хочу знать точную причину, по которой JavaScript называют «языком сценариев»?
Насколько я понимаю, JavaScript интерпретируется только браузером (а не компилируется). Поправьте меня если я ошибаюсь.
Но если нет компиляции, то почему 0 == ''
верно? Разве компилятор не принуждает значения, или это механизм JavaScript…? Я немного смущен.
- javascript
- сценарии
Думаю, первые два предложения из Википедии достаточно ясны:
Язык сценариев, язык сценариев или язык расширения — это программирование язык, который позволяет в некоторой степени управлять одно или несколько программ Приложения).
Языки, выбранные для целей сценариев часто много более высокого уровня, чем язык, используемый хост-приложение…
В данном случае приложение — это браузер. А по поводу компиляции:
Скрипты часто, но не всегда интерпретируется из источника код или «полукомпилированный» в байт-код который интерпретируется, в отличие от приложения, с которыми они связаны, которые традиционно компилируются в родной машинный код для системы на которые они запускают
О том, что 0
равно ''
, приведение не обязательно осуществляется компилятором; все дело в движке JavaScript во время выполнения.
Мне жаль брать все из Википедии, но это так ясно, и я поставил его в кавычки
PS: Я считаю, что это тоже стоит вставить:
Многие люди просматривают «скриптовые» языки хуже или как-то иначе, чем языки, которые не достигли популярность на сценарной сцене.
Как ни странно, эти же языки были тщательно выбран для сценариев из-за Их качество и универсальность.
3
Обновление на 2017 год
«Языки сценариев очень похожи на непристойности. Я не могу дать этому определение, но узнаю, когда увижу.» — Ларри Уолл
Для целей этого ответа давайте предположим, что это означает язык, который:
- лишен некоторых особенностей «настоящего» языка (что бы это ни значило), поэтому наиболее полезен в качестве «клея» между другими компонентами в система и
- интерпретируется, а не компилируется.
В какой-то момент Javascript действительно считался языком сценариев с базовыми функциями для управления DOM, выполнения проверки формы и танца Иисуса. Он был выполнен интерпретатором непосредственно из исходного кода.
Но JS значительно повзрослел за последние несколько лет, с такими расширенными функциями, как лямбда-выражения, классы (к лучшему или к худшему), деструктуризация, итераторы и модули, которые доводят его возможности до уровня большинства других современных языков. Он больше не ограничен браузером, он также часто работает автономно на сервере под NodeJS.
Javascript теперь универсально JIT-компилируется либо в байт-код (например, Java и C#), либо непосредственно в машинный код (например, C и C++). А современные движки предлагают фазу оптимизации, аналогичную большинству традиционных компилируемых языков.
V8 (хром, узел)
V8 компилирует JavaScript непосредственно в собственный машинный код перед его выполнением.
Код чакры (грань)
Chakra Core [может] делать параллельную JIT-компиляцию…
SpiderMonkey (Firefox)
SpiderMonkey 38 включает JIT-компилятор, который компилирует JavaScript в машинный код…
Следовательно, если современный JS считается языком сценариев , то то же самое должно относиться и к большинству других языков, не являющихся «сценарными».
1
Вы частично правы. Язык сценариев — это, по сути, язык, который не существует сам по себе; он «скриптует» другое приложение (в данном случае браузер). Я думаю, что вы думаете о интерпретируемый язык
2
Чтобы понять, почему JavaScript является языком сценариев? Во-первых, мы понимаем, почему Java не является языком сценариев.
Я думаю, что Сценарий означает письменный текст проекта, пьесы и т. д., который читается игроками напрямую, без интерпретатора между игроком и Сценарием.
Точно так же, как и в JavaScript, наша программа действует как пьеса или фильм, который написан в блокноте или любой другой текстовой странице, такой как EditPlus, которая читается браузером напрямую через движок JavaScript, для отображения не требуется компилятор и интерпретатор.
вывод в браузере, браузер работает как плеер.Но Java требует компилятора и интерпретатора для преобразования написанного кода Java в машиночитаемый формат и отображения вывода. Итак, Java — это не язык сценариев, а JavaScript — это язык сценариев.
Это описание является моим мнением о том, почему JavaScript является языком сценариев. Я попытался понять эту проблему, связать ее с реальным использованием. Я думаю, вы довольны.
1
Идея языка сценариев заключается в том, что он инструктирует хост выполнить ряд действий (очень похоже на то, как актер читает сценарий).
Javascript сообщает браузеру, что делать и как обрабатывать вещи точно так же, как это делает сценарий оболочки, php или любой другой язык сценариев для соответствующих хостов.
1
это интерпретируемый язык, доступ к которому ограничен и используется для определенной цели.
Это означает:
- интерпретируется при запуске, не компилируется
- Предоставляется ограниченный доступ к системе, обычно через определенный API
- Обычно ему даются только вызовы API, которые помогают ему достичь своей цели, и ничего более (хотя можно использовать сторонние дополнения)
2
Зарегистрируйтесь или войдите в систему
Зарегистрируйтесь с помощью Google
Зарегистрироваться через Facebook
Зарегистрируйтесь, используя электронную почту и пароль
Опубликовать как гость
Электронная почта
Требуется, но никогда не отображается
Опубликовать как гость
Электронная почта
Требуется, но не отображается
html — тег против тега
Задавать вопрос
спросил
Изменено 3 года назад
Просмотрено 139 тысяч раз
Мне просто интересно, в чем разница между
ии
<тип сценария='текст/javascript'>
Отличается ли он для разных веб-серверов?
Например,(знаю,что некорректно давать ссылку с w3schools,но посмотрите)
http:
тег.Почему это так?
- JavaScript
- HTML
3
В HTML 4 требуется атрибут type.По моему опыту,все браузеры по умолчанию будут использовать текст/javascript,если он отсутствует,но это поведение нигде не определено.Хотя теоретически можно оставить out и предположим,что он будет интерпретирован как JavaScript,он недействителен HTML,так почему бы не добавить его.
В HTML 5 атрибут type является необязательным и по умолчанию равен текст/javascript
Используйте
или просто(если не указан,тип тот же).Не используйте
;атрибут языка устарел
Ref:
typetextjavascript-?forum=netfxjscript
и
Разница между тегом