09 Модуль - Node.js, NPM, Webpack -- 03 Модульность кода Flashcards

1
Q

Наиболее важные преимущества модулей это

A

поддерживаемость, пространство имен и повторное использование.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Модульный код пытаются разбить на файлы, в каждом из которых

A

код, который выполняет отдельный функционал.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Сборка модулей — это процесс

A

конкатенации группы модулей, в один или группу файлов.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Обычно код делят на папки и файлы. Наличие отдельных тегов script для каждого файла означает, что

A

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

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

A

объект module.exports, значение которого будет доступно для использования другими модулями при импорте.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Для того чтобы получить интерфейс модуля в коде (импортировать), используется функция

A

require(‘путь-к-модулю’). Результатом своего выполнения require вернет интерфейс модуля — то что в модуле указано в module.exports.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Операции экспорта сущностей и импорта интерфейса модуля реализованы конструкциями

A

import from и export.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Модуль может экспортировать несколько сущностей, которые отличаются своими именами и называются

A

именованными экспортами(Named export)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Чтобы импортировать именованные экспорты в другой модуль, необходимо

A

знать имена экспортируемых сущностей, которые мы хотим импортировать.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Первый способ экспортировать это использовать

A

ключевое слово export перед всеми сущностями которые необходимо экспортировать. Они будут добавлены как свойства в экспортируемый объект. При импорте мы деструктуризируем свойства из импортируемого объекта.
Пример:
// myModule.js
const sqrt = Math.sqrt;
export const square = x => x * x;
export const diag = (x, y) => sqrt(square(x) + square(y));

// main.js
import { square, diag } from './path/to/myModule';

console. log(square(11)); // 121
console. log(diag(4, 3)); // 5

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Второй способ это явно указать объект со

A
свойствами для экспорта
Пример:
// myModule.js
const sqrt = Math.sqrt;
const square = x => x * x;
const diag = (x, y) => sqrt(square(x) + square(y));

export { square, diag };

// main.js
import { square, diag } from './path/to/myModule';

console. log(square(11)); // 121
console. log(diag(4, 3)); // 5

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Следующий синтаксис импортирует все экспорты модуля как объект с указанным именем.

A
// main.js
import * as myModule from './path/to/myModule';

console. log(myModule.square(11)); // 121
console. log(myModule.diag(4, 3)); // 5

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Экспорт по умолчанию(Default export) — это

A

самое главное экспортируемое значение, которое может быть чем угодно: переменной, функцией, классом и т. д.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Some differences that might make you choose one over the other:
Named Exports:
Default Exports:

A

Named Exports : {

    • Can export multiple values
    • MUST use the exported name when importing}

Default Exports : {

    • Export a single value
    • Can use any name when importing}
How well did you know this?
1
Not at all
2
3
4
5
Perfectly