меню

Прежде чем остановиться на отдельных характеристиках методов, дадим каждому из них определение.

require()

В контексте Node.js require() — это встроенная функция для включения внешних модулей, которые существуют в отдельных файлах. Оператор require() читает файл JavaScript, выполняет его, а затем возвращает экспортированный объект. Он позволяет добавлять встроенные модули NodeJS, те, что разработаны сообществом, а также локальные модули.

  
const myVar = require('http'); //to use built-in modules  
const myVar2 = require('./myLocaModule'); //to use local modules
  

import()

Операторы import() и export() используются для ссылки на модуль ES. Другие модули с такими типами файлов, как .json, нельзя импортировать с помощью этих операторов. Их можно использовать только в модулях ES, а спецификатором этого оператора может быть либо относительный путь типа URL, либо имя пакета. Оператор import также нельзя использовать во встроенных скриптах, если только такой скрипт не относится к типу module. Динамический импорт можно применять для скриптов, тип которых не является module.

  
const myVac = import("module-name");
  

Сравнение require() и import()

1. require() можно вызвать из любого места

Обычно операторы import() и require() вызываются в начале файла. Но вы можете вызвать require() из любого места кода, в то время как операторы import() могут быть определены только в начале. Определение оператора import() в другом месте приведет к ошибке или автоматическому сдвигу в начало файла.

2. require() может быть вызван условно

Оператор require() можно вызывать условно в отличие от import(). Взгляните на приведенный ниже код:

  
//require
if(user.id == 1){
   const getBlogTitle = require(./blogDetails.js’);
}
  
  
//import
if(...) {   
  import ...; // Ошибка, не разрешается!
}  
{   
  import ...; // Ошибка, мы не можем поместить импорт ни в один блок.
}
 

3. Модули ES можно вызывать динамически

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

 
//Динамический импорт
let {hi, bye} = await import('./say.js');  
hi(); // Hello!
bye(); // Bye!

//или

let say = await import('./say.js');     
say.hi(); // Hello!     
say.bye(); // Bye!
  

4. Операторы import() являются асинхронными

Операторы require() вызываются синхронно один за другим, в то время, как import() вызываются асинхронно, и, как известно, работают лучше, чем require() в крупномасштабных приложениях.

Материал был взят с сайта: nuancesprog.ru


Возможно, вам будет интересно

JavaScript and JQuery 1.8.3 решение проблемы с функцией attr() на примере генератора пароля

Совсем недавно решил написать генератор пароля с возможностью просмотра генерированного пароля под звездочками. Для работы выбрал JQuery 1.8.3 и нативный JavaScript. При написании самого скрипта столкнулся с проблемой в JQuery 1.8.3 с функцией attr().

Объекты в JavaScript

В статье рассмотрены базовые понятия, связанные с объектами в JavaScript: определение объектов, создание объектов, базовые операции с объектами

Разрешаем только ввод цифр в поле input

Часто возникает задача запрета ввода не цифровых значений в поле input. В этом материале разберем реализацию данного механизма на JavaScript.

Обработка ошибок в JavaScript. 10 примеров использования конструкции try...catch

Как фронтенд-разработчики мы часто используем try...catch в JavaScript для обработки ошибок. В этой статье я поделюсь десятью полезными советами, которые помогут вам более уверенно работать с исключениями.

Оформление заявки

Документы на создание сайта

Изучите наше коммерческое предложение, заполните БРИФ и отправьте его на почту maxidebox@list.ru. Изучив все пожелания из БРИФ-а, обратным ответом оповестим Вас по стоимости разработке, ответим на вопросы.

КП на создание сайта Коммерческое предложение на созданеи сайта

Мы берем на себя ответственность за все стадии работы и полностью избавляем клиентов от забот и необходимости вникать в тонкости.

Скачать БРИФ (акета) на создание сайта Скачать БРИФ (акета) на создание сайта

Зополните у БРИФ-а все необходимые поля. Сделайте краткое описание к каждому из пунктов анкеты, привидите примеры в соответсвующий пунктах - это позволит лучше понять Ваши ожидания и требования к сайту