Javascript Flashcards

1
Q

Какое значение возвращает префиксная/постфиксная форма инкремента и декремента?

A

новое / старое

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

Значение undefined в Численном преобразовании преобразуется в …

A

Nan

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

Значение null в Численном преобразовании преобразуется в …

A

0

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

Значение true / false в Численном преобразовании преобразуется в …

A

1 / 0

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

Пустой массив при операциях + / - к чему будет приведен?

A

к пустой строке

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

Какое значение находит оператор && / || ?

A

Первое ложное / первое истинное

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

Какие значения при логическом преобразовании станут false ?

A

0, null, undefined, NaN, “”

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

Какие значения при логическом преобразовании станут true?

A

все остальные

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

Как найти элемент на странице по id?

A

document.getElementById(id)

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

Как найти элементы на странице по селектору?

A

elem.querySelectorAll(css)

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

Что возвращает команда elem.querySelector(css)?

A

первый элемент, соответствующий данному CSS-селектору.

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

Какие бывают (3) getElementsBy…

A

TagName(tag)
ClassName(className)
Name(name)

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

Какую коллекцию возвращает getElementsBy…, а querySelectorAll ?

A

Живую, статичную.

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

С помощью какой команды можно посмотреть в консоли свойства объекта?

A

console.dir()

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

Как назначить несколько инлайн стилей одному элементу?

A

элемент.style.cssText = ‘свойство : значение; свойство : значение ‘

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

Как назначить стиль нескольким элементам в псевдомассиве?

A

Цикл или forEach
for (i = 0; i < массива; i++) {
массив[i].style.cssText = ‘свойство : значение’;
}
массив.forEach (item =>{
item.style.cssText = ‘свойство : значение’;
})

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

Как создать новый элемент с заданным тегом в JS?

A

document.createElement(tag)

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

Как создать новый текстовый узел с заданным текстом в JS?

A

document.createTextNode(text)

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

Метод вставки в конец node

A

node.append

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

Метод вставки в начало node

A

node.prepend

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

Метод вставки до node

A

node.before

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

Метод вставки после node

A

node.after

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

Метод замены node заданными узлами или строками.

A

node.replaceWith

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

Как расшифровывается DOM?

A

Document Object Model

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

Что такое DOM?

A

объектная модель документа, которая предоставляет все содержимое страницы в виде объектов, которые можно менять.

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

Как расшифровывается BOM?

A

Browser Object Model

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

Какие два свойства самые известные у объекта navigator?

A

navigator. userAgent - информация о текущем браузере

navigator. platform – информация о платформе

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

Какие типы узлов бывают в DOM дереве?

A

документ, элементы, текстовый узел, комментарий

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

3 способа назначить обработчик событий

A
  1. в HTML документе через приставку on
  2. в JS сначала получить доступ к элементу, после элемент. onсобытие = function() {
    код после события
    };
    3.с помощью addEventListener. элемент.addEventListener(‘название события’, () => {
    действие после события
    });
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
31
Q

что такое всплытие?

A

Когда на элементе происходит событие, обработчики сначала срабатывают на нём, потом на его родителе, затем выше и так далее, вверх по цепочке предков.

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

как называется самый глубокий элемент, который вызывает событие?

A

Целевым

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

как можно вызвать целевой элемент?

A

с помощью event.target

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

как отменить действие браузера по умолчанию?

A

event.preventDefault()

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

как поставить обработчик события на несколько элементов?

A

название псевдомассива.forEach(item => {
назначаем обработчик события
});

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

Что такое литерал объекта или литеральная нотация?

A

let user = {};

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

Как по-другому называют свойства объекта?

A

полями

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

Как удалить свойство из объекта?

A

delete св-во.объект

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

Как получить доступ к значению свойства, которое состоит из нескольких слов?

A

через []

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

Как проверить существует ли св-во в объекте?

A

С помощью оператора in. “key” in object

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

Как перебрать св-ва объекта? Синтаксис

A

С помощью цикла for in
for (let key in object) {
тело цикла выполняется для каждого св-ва
};

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

Что такое целочисленное свойство?

A

строка, которая может быть преобразована в целое число и обратно без изменений.

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

Как копируются объекты и примитивные типы данных?

A

по ссылке/по значению

44
Q

Когда два объекта равны?

A

только в том случае, если это один и тот же объект

45
Q

С помощью какого метода можно клонировать и объединять объекты? Синтаксис

A

Object.assign(dest, [src1, src2, src3…])

src копируется в dest

46
Q

Что такое метод объекта?

A

Функция, которая является свойством объекта

47
Q

Как методу получить доступ к информации в объекте?

A

С помощью ключевого слова this

48
Q

Строковое преобразование. синтаксис

A

value = String(value)

49
Q

Численное преобразование

A

Number(value)

50
Q

Как сократить запись большого числа? например, 1 мдрд

A

1е9 (1 и 9 нулей)

51
Q

Какие 3 функции для работы с округлением знаешь?

A

Math.floor
Округление в меньшую сторону: 3.1 становится 3, а -1.1 — -2.
Math.ceil
Округление в большую сторону: 3.1 становится 4, а -1.1 — -1.
Math.round
Округление до ближайшего целого: 3.1 становится 3, 3.6 — 4, а -1.1 — -1.

52
Q

Что делать если нам надо округлить число до n-ого количества цифр в дробной части?

A
  1. Умножить и разделить.
    Например, чтобы округлить число до второго знака после запятой, мы можем умножить число на 100, вызвать функцию округления и разделить обратно.
    2.Метод toFixed(n) округляет число до n знаков после запятой и возвращает строковое представление результата.
53
Q

Что является результатом toFixed?

A

строка

54
Q

Какая ф-я преобразует значение в число и проверяет является ли оно NaN?

A

isNaN(value)

55
Q

Какая ф-я преобразует аргумент в число и возвращает true, если оно является обычным числом, т.е. не NaN/Infinity/-Infinity

A

isFinite(value)

56
Q

Как получить числовое значение из строк с символами? Например “19€”

A

parseInt(целое число) и parseFloat(число с плавающей точкой)

57
Q

что возвращает Math.random()?

A

Возвращает псевдослучайное число в диапазоне от 0 (включительно) до 1 (но не включая 1)

58
Q

что возвращает Math.pow(n, power)?

A

Возвращает число n, возведённое в степень power

59
Q

как вывести последний символ в строке?

A

console.log(string[string.length -1]);

60
Q

Какие методы меняют регистр символов?

A

toLowerCase() и toUpperCase()

61
Q

Метод для поиска подстроки

A

str.indexOf(substr, pos).

62
Q

Метод, который ищет подстроку с конца строки к её началу

A

str.lastIndexOf(substr, position)

63
Q

Метод, который возвращает часть строки от start длины length.

A

str.substr(start, length)

64
Q

Метод, который возвращает часть строки от start до (не включая) end.

A

str.slice(start , end)

65
Q

Как проверить пустой массив или нет?

A
value = [];
if(value.length) {
...
} else {
...
};
66
Q

Как проверить что массив является массивом?

A

Array.isArray(массив)

67
Q

Выражение - это

A

любой валидный блок кода, который имеет ценность.

68
Q

Оператор - это

A

символ или ключевое слово, которое производит вычисление над некоторыми значениями. Эти значения называют операндами.

69
Q

Чем отличается строгое равенство/неравенство от нестрогого?

A

нестрогое - проверяется только значения

строгое - проверяется и тип данных

70
Q

Синтаксис тернарного оператора

A

выражение ? если true : если false

71
Q

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

A

arr.slice([start], [end])

72
Q

С помощью какого метода мы можем добавлять, удалять и заменять элементы? Его синтаксис

A

arr.splice(index[, deleteCount, elem1, …, elemN])
Он начинает с позиции index, удаляет deleteCount элементов и вставляет elem1, …, elemN на их место. Возвращает массив из удалённых элементов.

73
Q

Какой метод возвращает перевернутый массив?

A

arr.reverse()

74
Q

Какие два метода могут сделать копию массива?

A
  1. slice, если в него ничего не передать.

2. concat, если в скобки передать массив.

75
Q

Как называется метод, который создаёт новый массив, в который копирует данные из других массивов и дополнительные значения? Синтаксис

A

arr.concat(arg1, arg2…)

76
Q

Какой метод делает из массива строку? Что принимает в качестве аргумента

A

arr.join(). Принимает разделитель. Если пустой, будет все через запитую, если ‘’, то слитно, если ‘ ‘, то через пробел

77
Q

Метод, который из строки делает массив?

A

str.split(принимает разделитель)

78
Q

Что такое ф-я высшего порядка?

A

ф-я, которая принимает в качестве параметров другие ф-и или возвращает ф-и

79
Q

Что могут ф-и в JS?

A
  1. храниться в переменной, объекте или массиве.
  2. передаваться как аргументы в другую функцию.
  3. могут быть возвращены из функции.
80
Q

Что такое ф-я обратного порядка (колбэк)?

A

Функции обратного вызова передаются в качестве аргумента в другие функции.

81
Q

Что делает метод call()? Синтаксис

A

func.call(context, arg1, arg2, …)

При этом вызывается функция func, первый аргумент call становится её this, а остальные передаются «как есть».

82
Q

Что делает метод apply()? Синтаксис

A

Он выполняет func, устанавливая this=context и принимая в качестве списка аргументов псевдомассив args.
func.apply(context, args)

83
Q

Как решить проблему отсутствия arguments в стрелочных функциях?

A
можно решить путём сочетания функций-стрелок с rest оператором:
const printParams = (...props) => console.log(props);
printParams('test', 123); // ["test", 123]
84
Q

this у стрелочных ф-й

A

Для стрелочных функций не существует “собственного” this, то есть они используют this “выше” уровнем - тот this, который определяется в момент создания актуального окружения, в котором находится стрелочная функция.

85
Q

Для чего используется метод reduce()?Синтаксис

A

используется для последовательной обработки каждого элемента массива с сохранением промежуточного результата.
arr.reduce(callback( accumulator, currentValue[, index[, array]] )[, initialValue])
параметры
callback
Функция, выполняемая для каждого элемента в массиве (кроме первого, если не указано значение initialValue).

Требуется четыре аргумента:

accumulator
Аккумулятор накапливает возвращаемые значения обратного вызова . Это накопленное значение, ранее возвращенное в последнем вызове обратного вызова - или initialValue, если оно было предоставлено (см. Ниже).
currentValue
Текущий элемент, обрабатываемый в массиве.
index По желанию
Индекс текущего элемента, обрабатываемого в массиве. Начинается с индекса, 0если initialValueпредоставляется. В противном случае он начинается с индекса 1.
array По желанию
Массив reduce()был вызван.
initialValue По желанию
Значение, используемое в качестве первого аргумента для первого вызова callback. Если нет initialValue, первый элемент в массиве будет использоваться в качестве начального accumulatorзначения и пропускается как currentValue. Вызов reduce()пустого массива без initialValueволи выдает TypeError.
Возвращаемое значение

86
Q

Для чего используют метод filter() и что она делает

A

используется для фильтрации массива через функцию.
Он создаёт новый массив, в который войдут только те элементы arr, для которых вызов callback(item, i, arr) возвратит true.

87
Q

Что делает метод map()?

A

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

88
Q

Что делает метод some()?

A

проверяет, удовлетворяет ли какой-либо элемент массива условию, заданному в передаваемой функции.
arr.some(callback(element => условие)

89
Q

Что делает метод every()?

A

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

90
Q

Синтаксис forEach()

A
arr.forEach(function(item, index, array) {
  // ... делать что-то с item
});
91
Q

Синтаксис reduce()?

A
let value = arr.reduce(function(previousValue, item, index, array) {
  // ...
}, [initial]);
Функция применяется по очереди ко всем элементам массива и «переносит» свой результат на следующий вызов.

Аргументы:

previousValue – результат предыдущего вызова этой функции, равен initial при первом вызове (если передан initial),
item – очередной элемент массива,
index – его индекс,
array – сам массив.

92
Q

Что такое замыкания?

A

это функции, ссылающиеся на независимые (свободные) переменные. Другими словами, функция, определённая в замыкании, «запоминает» окружение, в котором она была создана.

93
Q

Какие три типа кода существуют в ECMAScript:

A
  • глобальный код ( window и все его свойства и методы );
  • код функции ( function foo() { …some code… } );
  • eval код ( eval(‘1 + 1’) ).
94
Q

Что такое лексическое окружение?

A

это структура данных, которая хранит информацию по идентификаторам переменных. Тут идентификатор обозначает имя переменных/функций, а переменная настоящий объект[включая тип функции] или примитивное значение.

95
Q

Что каждый раз делает JS-движок, когда создаёт контекст выполнения для выполнения функции или глобального кода?

A

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

96
Q

Какие два компонента есть у лексического окружения?

A
  1. Запись в окружении(environment record) это место хранятся объявления переменной или функции.
  2. Ссылка на внешнее лексическое окружение – то есть то, которое соответствует коду снаружи (снаружи от текущих фигурных скобок).
97
Q

Что такое переменная с точки зрения лексического окружения?

A

это просто свойство специального внутреннего объекта: Environment Record. «Получить или изменить переменную», означает, «получить или изменить свойство этого объекта».

98
Q

В чем отличие переменных от Function Declaration?

A

В отличие от переменных, объявленных с помощью let, Function Declaration полностью инициализируются не тогда, когда выполнение доходит до них, а раньше, когда создаётся лексическое окружение.

99
Q

Какое значение будет использовать функция при выполнении?

A

Функция получает текущее значение внешних переменных, то есть, их последнее значение

100
Q

Что такое [[Environment]]?

A

Все функции «при рождении» получают скрытое свойство [[Environment]], которое ссылается на лексическое окружение места, где они были созданы.

101
Q

Самый простой способ сделать глубокое копирование?

A
JSON
let newObject = JSON.parse(JSON.stringify(obj));
102
Q

Какой метод возвращает массив ключей?

A

Object.keys(obj)

103
Q

Какой метод возвращает массив пар [ключ, значение]?

A

Object.entries(obj)

104
Q

Какой метод возвращает массив значений?

A

Object.values(obj)

105
Q

Какой метод получив массив пар вида [ключ, значение], он создаёт из них объект?

A

Object.fromEntries()