Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   А как же работает наш любимый JS. (https://javascript.ru/forum/misc/50640-kak-zhe-rabotaet-nash-lyubimyjj-js.html)

mistermar92 05.10.2014 16:30

А как же работает наш любимый JS.
 
Всем доброго времени суток. Подскажите пожалуйста, ( а лучше поделитесь ссылкой) как JS обрабатывает код. Меня интересуют потоки обработки файла.

mistermar92 05.10.2014 19:01

Либо может знаете как этот процесс называется?) и с ноовыми силами долбить гугл)

melky 05.10.2014 19:07

Цитата:

Сообщение от mistermar92
как JS обрабатывает код

какой такой код обрабатывает js ?

mistermar92 05.10.2014 19:11

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

Safort 05.10.2014 19:26

melky,
имеется в виду, как интерпретатор код обрабатывает.

MallSerg 05.10.2014 19:34

сначала идет интерпретация JS в современных браузерах JS переводится в промежуточный байт код боле понятный для компьютера на основании полученного кода проводится его анализ и оптимазация ( спасибо браузерным войнам) затем код встраивается в глобальный скоп (это такой специальный объект в котором сохраняются именна=ссылки на переменные строятся хеш таблицы) после этого запускается компиляция в нативный код системы после этого код запускается на выполнение как нативный код текущей системы

kobezzza 05.10.2014 19:47

Зависит от VM, т.к. реализаций JS много и они работают по разному, например Nashorn транслирует код в байт код JVM, а другие VM могут компилить код сразу в машинный, минуя байт код. Также может зависит от режима работы VM и т.д.

Примерная схема такова:

1) Парсинг исходного кода;
2) Генерация байт кода или непосредственная компиляция в машинный код;
3) В VM, которые используют JIT часто используемый байткод комплится в машинный.

Вообще VM может поступать как посчитает нужным, т.к. это никаким стандартом не контролируется, поэтому может статься, что принципы работы у того же SpiderMonkey и V8 сильно отличаются, в общем нужно разбираться конкретно.

mistermar92 06.10.2014 13:32

Для тех кому интересно = ) ссылка на материал по моему вопросу. Думаю полезно знать каждому.

kobezzza 06.10.2014 13:53

Цитата:

Сообщение от mistermar92 (Сообщение 333702)
Для тех кому интересно = ) ссылка на материал по моему вопросу. Думаю полезно знать каждому.

Это уже классика, думаю все здешние постояльцы читали блог Сошникова :)
Только следует заметить, что в статье по ссылке описан стандарт ES3, а сейчас ES5.1 и готовится ES6, а там многое сделано иначе, но у Сошникова есть статьи и про актуальные стандарты.

Safort 06.10.2014 18:37

kobezzza,
да, блог один из наигоднейших, что я читал.


Часовой пояс GMT +3, время: 16:12.