Вы можете спросить: «Чувак! Что за черт? Node.js существует уже 7 лет, и теперь вы ведете блог о том, что такое Node.js ». Я согласен с вами, но я слишком часто веду такой разговор в моем офисе

Том: Привет, Рахул, мне нужна твоя помощь. Я хочу захватить мир.
Я: Конечно, Том. Я могу сделать это в Node.js. Думаю, я недавно видел для этого узел узла.
Том: Круто! Я настрою сервер приложений, чтобы вы его развернули.
Я: Мне это не нужно. Node.js, чувак!
Том: Ой! Итак, Node.js - это сервер приложений? Я думал, что Node.js - это язык программирования.
Я: Нет, нет! Javascript - это язык, который мы кодируем. Поскольку он основан на сценариях, мне не нужен сервер контейнерных приложений.
Том: А? Так является ли Node.js библиотекой JS?
Я: Не совсем уууу…
Том: Тогда должно быть, именно о JS Framework от Facebook все говорят в наши дни.
Я: Том, это React.js, и я бы не стал классифицировать Node.js как фреймворк.
Том: Что еще у меня есть, а? Это веб-сервер, такой как Apache Tomcat?
Я: Нет, но в Node.js есть встроенные модули, которые помогают мне создавать на веб-сервере.
Том: И что за чертовщина Node.js?
Я: В основном, Node.js - это ……

Я работаю в экосистеме автоботов и десептиконов (т.е. одна команда живет в мире открытого исходного кода, в то время как другие команды поддерживают типичную культуру разработки на основе корпоративных инструментов. Поскольку в наши дни мы сходимся слишком часто, я подумал о написании этого, чтобы глубже погрузиться в то, что на самом деле такое Node.js

Механизм JavaScript V8 - Под капотом

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

Том: Ой! Хорошо, теперь я понял. Итак, Node.js - это тот язык, который общается с процессорами.

Нет, это не так. Процессоры не понимают языки высокого уровня, поэтому вы должны предоставить им наборы инструкций (машинный код). Но написать машинный код непросто. Давайте просто взглянем

Ничего не понял? И я нет. Для разных типов процессоров существуют разные типы наборов инструкций. Таким образом, код, который мы пишем, должен быть преобразован в эти наборы команд, чтобы процессор мог их выполнить. Это преобразование должно выполняться каким-то процессом, и именно здесь появляются механизмы Javascript.

Механизм J avascript - это программа, преобразующая код Javascript в наборы команд, понятные машине. Существует множество JS-движков, созданных и поддерживаемых мировыми технологическими лидерами, и наиболее популярным среди них является V8 Javascript Engine, разработанный Google. Всемирно известный браузер Google Chrome работает на базе движка V8 Javascript.

ECMAScript

Том: Как V8 или любой другой движок Javascript знает, как преобразовать JavaScript в машинный код? Существуют ли какие-либо стандарты, определяющие, что должен содержать любой фрагмент кода javascript?

Да, есть. Все вместе для ECMAScript. ECMAScript определяет спецификацию языка для javascript, описывая каждый компонент javascript, их функции и т. Д. Все механизмы javascript используют спецификации ECMAScript для преобразования кода javascript в машинный код.

C++

Том: Рахул, разве мы не говорили о Javascript? Почему мы сейчас переходим на C ++?

Том, движок V8 написан на C ++, и прежде чем вы спросите меня, почему это важно, взгляните на снимок экрана домашней страницы V8, показанный ниже.

Как было подчеркнуто, V8 может работать автономно или может быть встроен в любое приложение C ++. Поэтому, если я напишу программу на C ++, я могу встроить V8 и обработать любой написанный мной js-код.

В V8 также есть hooks, который я могу использовать в моей программе на C ++ для добавления дополнительных функций в Javascript и может предоставить людям несколько функций для кодирования. Поскольку я пишу код на C ++, я могу добавить чертовски много функций. Предполагалось, что Javascript будет языком на основе браузера, и теперь, благодаря множеству библиотек, существующих с C ++, я могу добавить много новых функций (доступ к файловой системе, подключение к базе данных и т. Д.) В Javascript.

Именно этим занимается Node.js. Но в более крупном масштабе добавление функций в Javascript, которых никогда не ожидалось, что они станут частью сообщества Javascript.

Том: Означает ли это, что Node.js также написан на C ++?

Пятно на Томе !!! Node.js написан на C ++ и включает V8 для преобразования js в машинный код и вводит бесчисленные функции в экосистему Javascript.

Отныне, если вас спросят, что такое Node.js, ответьте

Node.js - это программа, которая преобразует javascript в машинный код, встраивая движок V8 в свой код C ++, и предоставляет огромные возможности Javascript и чудовищные возможности разработчикам Javascript »