JS Theory Flashcards
(119 cards)
В чем разница между == и ===?
== сравнение с приведением типов (приводит все к числам) === сравнение без приведения типов (сначала typeof, потом значения)
Что делает forEach?
Метод для перебора
Аналог for для перебора массива, ничего не возвращает
arr.forEach(function(elem, i, array) {
alert( i + “: “ + elem+ “ (массив:” + array + “)” );
});
Что делает filter?
Метод для фильтрации
let results = arr.filter(function(item, index, array) { // если true - элемент добавляется к результату, и перебор продолжается // возвращается пустой массив в случае, если ничего не найдено });
Что делает map?
Метод для трансформации
let result = arr.map(function(item, index, array) { // возвращается новое значение вместо элемента });
Что делает reduce?
Метод для сохранения промежуточного результата.
Используются для вычисления какого-нибудь единого значения на основе всего массива.
let value = arr.reduce(function(previousValue, item, index, array) { // ... }, [initial]
При отсутствии initial в качестве первого значения берётся первый элемент массива, а перебор стартует со второго.
Как создать объект?
const obj = {...} const obj = new Object(){...}
Как создать массив?
let arr = []
let arr = new Array(“Яблоко”, “Груша”, “и тд”);
НО let arr = new Array(2) = [undefined, undefined]
и Array.of(2) = [2];
Как создать массив из итерируемого объект в массив?
Array.from(obj)
Что такое псевдомассив?
Это объекты, у которых есть индексы и свойство length, но не поддерживаются методы массивов
Что такое bind?
Метод позволяющий привязать или поменять контекст (зафиксировать this), в метод также передаётся набор аргументов, которые будут установлены перед переданными в привязанную функцию аргументами при её вызове.
let user = { firstName: "Вася", sayHi() { alert(`Привет, ${this.firstName}!`); } };
let sayHi = user.sayHi.bind(user);
Что такое самозапускающаяся функция?
(function(){})() - функция, которая вызывается и выполняется сразу после объявления и изолирует все переменные и функции от глобального контекста
Что такое замыкание?
Это функция, которая объявлена в другой функции и запоминает свои внешние переменные и может получить к ним доступ, даже после того, как внешняя функция прекратит выполнение.
Что такое деструктуризация?
Это спец.синтаксис, позволяющий распаковать массив или объект в набор переменных
let arr = [“Ilya”, “Kantor”]
let [firstName, surname] = [“Ilya”, “Kantor”];
let vegetables = ['🍅', '🍄', '🥕']; let tomato = vegetables[0]; let mushroom= vegetables[1]; let carrot= vegetables[2];
Что такое оператор …?
Если … располагается в конце списка аргументов функции, то это «остаточные параметры» (rest). Он собирает остальные неуказанные аргументы и делает из них массив.
Если … встретился в вызове функции или где-либо ещё, то это «оператор расширения» (spread). Он извлекает элементы из массива.
let arr = [3, 5, 1];
let arr2 = [8, 9, 15];
let merged = [0, …arr, 2, …arr2];
Отличие стрелочных функций?
1) Нет arguments
2) Не имеет контекста, т.е. не имеет собственного this. Она берет this в месте объявления, а обычная в месте выполнения.
Как задать метод прототипу?
Object.prototype.method = …
Как унаследовать объект?
const obj2 = Object.create(obj1)
Особенность создания объектов?
Все созданные объекты ссылаются на прототип
Что такое map?
Map – это коллекция ключ/значение, как и Object.
Map позволяет использовать ключи любого типа, а
Object приводит ключи к строкам
Что такое set?
Особый тип коллекции - Множество где каждый элемент уникален, т.е. добавление двух одинаковых ничего даст
Как узнать есть ли свойство у объекта?
obj.hasOwnProperty(prop) и в отличие от оператора in, этот метод не проверяет существование свойств в цепочке прототипов объекта.
Какие значения возвращают false?
0, null, undefined, NaN, ‘’
Что такое arguments?
Объект - список всех аргументов функции
Как отслеживать ошибки?
try, catch