Форум программистов, компьютерный форум, киберфорум
JavaScript для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
1 / 1 / 2
Регистрация: 17.03.2016
Сообщений: 234

В браузер встроен "интерпретатор" или "компилятор" JavaScript

10.11.2024, 17:38. Показов 640. Ответов 4

Студворк — интернет-сервис помощи студентам
(1) Сначала изучения JavaScript прочитал такую информацию:

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

Ну, собственно говоря, пока что использую для написания программ обычный блокнот + браузер Хром. Вроде всё понятно.

(2) Сейчас вот на сайте одного онлайн-учебника читаю статью про "Hoisting":

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

Выполнил все примеры из статьи про "Hoisting" и опять же, кроме блокнота и браузера Хром мне ничего дополнительно не понадобилось, никаких компиляторов не устанавливал.

Мне кажется, там где писали про "компилятор JavaScript" - это просто опечатка. Наверное, хотели написать "интерпретатор". Но всё-таки хочу на всякий случай уточнить этот момент у экспертов.
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
10.11.2024, 17:38
Ответы с готовыми решениями:

Ассемблер - это макропроцессор, транслятор, препроцессор, интерпретатор, компилятор, кросскомпилятор или транслитератор?
макропроцессор транслятор препроцессор интерпретатор компилятор кроскомпилятор транслитератор ??

Компилятор и интерпретатор на C#
Привет. Может привести пример книг по компиляторам и интерпретаторам на c#. Заранее спасибо!

Интерпретатор/компилятор ассемблер-подобного языка
Привет! Чую, что изобрёл велисипед, даже скорее велопарк, но всё же, поделюсь: Некоторое время назад начал изучать кресты, в целом...

4
Заблокирован
10.11.2024, 18:06
Несколько цитат:
компилятор JIT (Just In Time). Он представляет собой комбинацию интерпретатора и компилятора, и большинство браузеров теперь реализуют эту функцию для повышения эффективности
JavaScript относится к динамически транслируемым языкам (JIT - Just-In-Time). Т.е. он сначала запускается в интерпретируемом режиме, а потом компилируется в нативный код (т.е. код, исполняемый непосредственно процессором).
JIT-компиляция (англ. just-in-time, компиляция «точно в нужное время»), динамическая компиляция (англ. dynamic translation) — технология увеличения производительности программных систем, использующих байт-код, путём компиляции байт-кода в машинный код или в другой формат непосредственно во время работы программы.
1
367 / 332 / 83
Регистрация: 17.04.2022
Сообщений: 1,106
Записей в блоге: 8
10.11.2024, 19:18
Лучший ответ Сообщение было отмечено alex_7 как решение

Решение

Цитата Сообщение от alex_7 Посмотреть сообщение
В браузер встроен "интерпретатор" или "компилятор" JavaScript
В браузер встроен "JS-движок" https://v8.dev/. Лучше используйте этот термин, поскольку эта штука значительно сложнее устроена, чем просто "интерпретатор" или "компилятор".

А hoisting - это эффект, который у "интерпретаторов" отсутствует - чистые интерпретаторы "отрабатывают" текущую команду и объекты, которые не были объявлены к этому моменту, вызовут у них "недоумение".
1
 Аватар для MallSerg
91 / 58 / 14
Регистрация: 16.11.2018
Сообщений: 274
10.11.2024, 20:10
Цитата Сообщение от alex_7 Посмотреть сообщение
В браузер встроен "интерпретатор" или "компилятор" JavaScript
В современных браузерах это сложная система из множества интерпретаторов, компиляторов, препарсеров, парсеров. Обычно такую систему называют JavaScript движком.
Формально код js может быть интерпретирован на лету обычно это происходит при вызовах eval или строк которые вызываются как JS код например html атрибуты onclick или параметр settimeout.
JS может быть скомпилирован в байт код (JIT - Just-In-Time) это обычно и происходит для большинства кода в тегах script или внешних файлах.
JS может быть скомпилирован в нативный код текущего компьютера по типу exe файлов только для изолированной песочницы браузера. Обычно это часто и везде подключаемые файлы типо - яндекс метрики, гугла аналитики, всякие Вуе, Ангуляры, реакты, Жейквери (мало смысла 10 тысяч раз в день их компилировать).
JS скомпилированный в нативный код может быть перекомпилирован оптимизирующим компилятором (turbofan) в максимально эффективный для текущих условий. Или деоптимизирован в JIT версию если условия изменились.
1
 Аватар для voraa
1276 / 1241 / 185
Регистрация: 21.01.2024
Сообщений: 5,729
10.11.2024, 20:49
Цитата Сообщение от sqltd1 Посмотреть сообщение
чистые интерпретаторы "отрабатывают" текущую команду и объекты, которые не были объявлены к этому моменту, вызовут у них "недоумение".
В нестрогом режиме, если встречается необъявленная переменная, то просто берется значение undefined. И никакого недоумения.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
10.11.2024, 20:49
Помогаю со студенческими работами здесь

Clojure Scheme. Посоветуйте компилятор/интерпретатор
В общем такое дело. Читаю sicp, нужна какая-то среда, для практики и будущих экспериментов. Что-то читал, но так и не понял что конкретно...

ASP.net его надо скачивать или он уже встроен в Windows XP/2000?
ASP.net его надо скачивать или он уже встроен в Windows XP/2000? ну вот собственно и вопрос) спасибо!

Интерпретатор для JavaScript
Программирую во встроенном интерпретаторе браузера, но есть одна проблема. Иногда надо скрипт проходить пошагово, для обнаружения ошибки. А...

Компилятор (конструктор) Javascript
Скажите - ести компилятор для Javascript похожый на Visual Studio C++/C#, где в конструкторе можно выбирать и ставить на форму элементы...

Кодировка, или интерпретатор
Здравствуйте, сегодня решил начать учить PHP, как обычно начал с низов, но сразу возникла проблема на счет вывода результата на странице...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11680&d=1772460536 Одним из. . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru