меню

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

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().

This в JavaScript

Ключевое слово this в JavaScript, так же, как и во многих других языках программирования, используется подобно местоимению в естественном языке. Так же, как в естественном языке, с помощью местоимений мы указываем на определенного человека, животное, предмет, в JavaScript мы можем использовать this для указания на определенный объект.

Javascript array шпаргалка

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

Как избежать повторной загрузки контента Jquery + Ajax + JSON

Как избежать повторной загрузки контента Jquery + Ajax + JSON. Для работы Front - End'а доступны были по ТЗ только таковы инструменты Java Script, JQuery, Ajax, JSON и конечно же HTML + CSS.

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

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

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

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

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

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

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