Подготовка к собеседованию по Node.js
-
1. Что такое Node.js?Node.js - это среда выполнения JavaScript, основанная на движке V8. Она позволяет запускать JavaScript вне браузера - обычно на веб-сервере.
-
2. Для чего нужен Node.js?Node.js отлично справляется с обработкой нескольких соединений с низкой цикломатической сложностью, учитывая, что его однопоточный характер требует, чтобы мы как можно скорее освободили цикл обработки событий. Это делает Node.js идеальным выбором для микросервисов и приложений, работающих в режиме реального времени.
-
3. Что такое npm?npm представляет собой диспетчер пакетов Node.js. Он состоит из интерфейса командной строки, который можно использовать для доступа к онлайн-реестру общедоступных и частных пакетов.
-
4. Как создать приложение Node.js с нуля?Можно начать с создания папки проекта. Затем мы переходим к этой папке с помощью командной строки и запускаем
npm init. Наконец, мы следуем инструкциям, чтобы заполнить информацию о нашем приложении. -
5. Что делает «npm install»?Он устанавливает зависимости, найденные в файле
package.json. -
6. Как установить библиотеку в Node.js?
npm install name-of-the-libraryустановит нашу библиотеку и включит ее какdependency. Если мы добавим параметр--save-dev, библиотека будет включена какdevDependency. -
7. Как создать собственный скрипт?Необходимо зайти в
package.jsonи добавить собственный скрипт в полеscripts. Затем можно запустить скрипт, перейдя в терминал и запустивnpm run name-of-script. -
8. Можно ли создать интерфейсное приложение с помощью Node.js?Браузер не может запускать приложение, созданное на основе Node.js, но можно использовать что-то вроде webpack или Parcel, чтобы связать код и превратить его во что-то, что может запускать браузер. В настоящее время очень распространено использование среды Node.js для создания интерфейсных приложений. Хорошим примером использования Node.js во внешнем интерфейсе является платформа Electron, которая использует как Node.js, так и chromium для сборки «нативных» приложений, например, таких как VS Code.
-
9. Можете ли вы назвать три популярных фреймворка Node.js?Express.js, вероятно, является наиболее популярным фреймворком на сегодняшний день. Koajs, вероятно, один из наиболее быстрых, а Sails.js отлично подходит для приложений двусторонней привязки в реальном времени, поскольку они используют socket.io.
-
10. Чем хорош Express.js?Express.js упрощает установку маршрутов для веб-приложения, что делает его оптимальным выбором для создания REST API. Он довольно гибкий и простой в использовании, а его архитектура промежуточного программного обеспечения помогает сохранить простую и масштабируемую систему.
-
11. Что такое Crypto?Crypto - это внутренняя библиотека Node.js, которая обеспечивает криптографические функции, например, для шифрования и дешифрования паролей.
-
12. Как мы обрабатываем локальную и глобальную область видимости в Node.js?В отличие от клиентского JavaScript, в Node.js переменные, объявленные с помощью
varс максимальной областью видимости, не являются глобальными; они являются локальными по отношению к модулю, в котором находятся. В браузере у нас есть доступ к объектуwindow, в котором находятся глобальные переменные, и в Node.js есть объект для этого, называемыйglobal. -
13. Есть ли у Node.js доступ к файловой системе?Да. Мы можем использовать модуль fs для чтения, записи, копирования и удаления файлов и папок.
-
14. Что означает неблокирующий?Это означает, что фрагмент кода, такой как, например, асинхронная функция, планируется запустить в следующей итерации цикла обработки событий, тем самым разблокируя остальную часть кода и, позволяя ему продолжать работать.
-
15. Что такое цикл событий и как он работает?Цикл событий - это то, что придает Node.js асинхронность. Он планирует выполнение набора из пяти фаз в цикле. На первом этапе выполняются запланированные обратные вызовы setTimeout и setInterval. Второй запускает обратные вызовы ввода-вывода, запланированные для выполнения на текущей итерации. Третий опрашивает события, которые будут выполнены в следующей итерации. Четвертый запускает обратные вызовы setImmediate(). Наконец, пятый запускает все обратные вызовы «закрытия».
-
16. Выполняются ли асинхронные функции параллельно?Нет. Асинхронная функция будет выполняться на следующей итерации цикла событий, в то время как параллельный процесс выполняется в своем собственном потоке.
-
17. Является ли Node.js многопоточным?Процесс Node.js выполняется в одном потоке, но при необходимости можно использовать модуль
child_processдля параллельного запуска нескольких процессов илиWorkersдля запуска нескольких потоков. -
18. Что такое модуль child_process?Модуль child_process позволяет порождать и разветвлять дочерние процессы. Это независимые процессы, которые выполняются в собственном процессоре и предоставляют нам доступ к системным командам.
-
19. В чем разница между web worker и рабочим потоком?Web worker реализованы в браузере, а рабочие потоки реализованы в Node.js. Они решают одну и ту же проблему, а именно обеспечивают параллельную обработку. Фактически, API Worker Thread основан на реализации Web Workers.
-
20. Каковы преимущества использования рабочего потока перед дочерним процессом?В то время как дочерний процесс запускает свой собственный процесс со своим собственным пространством памяти, рабочий поток - это поток внутри процесса, который может использовать память совместно с основным потоком. Это помогает избежать дорогостоящей сериализации данных.
-
21. Что бы вы использовали для открытия двустороннего соединения с клиентом через HTTP в реальном времени?Мы могли бы использовать WebSockets или длинный поллинг. Существуют библиотеки, такие как soket.io и SignalR, которые упрощают нашу задачу. Они даже предоставляют клиенты, которые возвращаются к длинному поллингу, если WebSockets недоступны в браузере.
Помощь сайту
ЮMoney:
4100 1180 7209 833
Карта Сбербанк:
2202 2080 6183 7127