Javascript Flashcards
Какое значение возвращает префиксная/постфиксная форма инкремента и декремента?
новое / старое
Значение undefined в Численном преобразовании преобразуется в …
Nan
Значение null в Численном преобразовании преобразуется в …
0
Значение true / false в Численном преобразовании преобразуется в …
1 / 0
Пустой массив при операциях + / - к чему будет приведен?
к пустой строке
Какое значение находит оператор && / || ?
Первое ложное / первое истинное
Какие значения при логическом преобразовании станут false ?
0, null, undefined, NaN, “”
Какие значения при логическом преобразовании станут true?
все остальные
У какого оператора приоритет выше && или || ?
&&
Как найти элемент на странице по id?
document.getElementById(id)
Как найти элементы на странице по селектору?
elem.querySelectorAll(css)
Что возвращает команда elem.querySelector(css)?
первый элемент, соответствующий данному CSS-селектору.
Какие бывают (3) getElementsBy…
TagName(tag)
ClassName(className)
Name(name)
Какую коллекцию возвращает getElementsBy…, а querySelectorAll ?
Живую, статичную.
С помощью какой команды можно посмотреть в консоли свойства объекта?
console.dir()
Как назначить несколько инлайн стилей одному элементу?
элемент.style.cssText = ‘свойство : значение; свойство : значение ‘
Как назначить стиль нескольким элементам в псевдомассиве?
Цикл или forEach
for (i = 0; i < массива; i++) {
массив[i].style.cssText = ‘свойство : значение’;
}
массив.forEach (item =>{
item.style.cssText = ‘свойство : значение’;
})
Как создать новый элемент с заданным тегом в JS?
document.createElement(tag)
Как создать новый текстовый узел с заданным текстом в JS?
document.createTextNode(text)
Метод вставки в конец node
node.append
Метод вставки в начало node
node.prepend
Метод вставки до node
node.before
Метод вставки после node
node.after
Метод замены node заданными узлами или строками.
node.replaceWith
Как расшифровывается DOM?
Document Object Model
Что такое DOM?
объектная модель документа, которая предоставляет все содержимое страницы в виде объектов, которые можно менять.
Как расшифровывается BOM?
Browser Object Model
Какие два свойства самые известные у объекта navigator?
navigator. userAgent - информация о текущем браузере
navigator. platform – информация о платформе
Какие типы узлов бывают в DOM дереве?
документ, элементы, текстовый узел, комментарий
3 способа назначить обработчик событий
- в HTML документе через приставку on
- в JS сначала получить доступ к элементу, после элемент. onсобытие = function() {
код после события
};
3.с помощью addEventListener. элемент.addEventListener(‘название события’, () => {
действие после события
});
что такое всплытие?
Когда на элементе происходит событие, обработчики сначала срабатывают на нём, потом на его родителе, затем выше и так далее, вверх по цепочке предков.
как называется самый глубокий элемент, который вызывает событие?
Целевым
как можно вызвать целевой элемент?
с помощью event.target
как отменить действие браузера по умолчанию?
event.preventDefault()
как поставить обработчик события на несколько элементов?
название псевдомассива.forEach(item => {
назначаем обработчик события
});
Что такое литерал объекта или литеральная нотация?
let user = {};
Как по-другому называют свойства объекта?
полями
Как удалить свойство из объекта?
delete св-во.объект
Как получить доступ к значению свойства, которое состоит из нескольких слов?
через []
Как проверить существует ли св-во в объекте?
С помощью оператора in. “key” in object
Как перебрать св-ва объекта? Синтаксис
С помощью цикла for in
for (let key in object) {
тело цикла выполняется для каждого св-ва
};
Что такое целочисленное свойство?
строка, которая может быть преобразована в целое число и обратно без изменений.
Как копируются объекты и примитивные типы данных?
по ссылке/по значению
Когда два объекта равны?
только в том случае, если это один и тот же объект
С помощью какого метода можно клонировать и объединять объекты? Синтаксис
Object.assign(dest, [src1, src2, src3…])
src копируется в dest
Что такое метод объекта?
Функция, которая является свойством объекта
Как методу получить доступ к информации в объекте?
С помощью ключевого слова this
Строковое преобразование. синтаксис
value = String(value)
Численное преобразование
Number(value)
Как сократить запись большого числа? например, 1 мдрд
1е9 (1 и 9 нулей)
Какие 3 функции для работы с округлением знаешь?
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.
Что делать если нам надо округлить число до n-ого количества цифр в дробной части?
- Умножить и разделить.
Например, чтобы округлить число до второго знака после запятой, мы можем умножить число на 100, вызвать функцию округления и разделить обратно.
2.Метод toFixed(n) округляет число до n знаков после запятой и возвращает строковое представление результата.
Что является результатом toFixed?
строка
Какая ф-я преобразует значение в число и проверяет является ли оно NaN?
isNaN(value)
Какая ф-я преобразует аргумент в число и возвращает true, если оно является обычным числом, т.е. не NaN/Infinity/-Infinity
isFinite(value)
Как получить числовое значение из строк с символами? Например “19€”
parseInt(целое число) и parseFloat(число с плавающей точкой)
что возвращает Math.random()?
Возвращает псевдослучайное число в диапазоне от 0 (включительно) до 1 (но не включая 1)
что возвращает Math.pow(n, power)?
Возвращает число n, возведённое в степень power
как вывести последний символ в строке?
console.log(string[string.length -1]);
Какие методы меняют регистр символов?
toLowerCase() и toUpperCase()
Метод для поиска подстроки
str.indexOf(substr, pos).
Метод, который ищет подстроку с конца строки к её началу
str.lastIndexOf(substr, position)
Метод, который возвращает часть строки от start длины length.
str.substr(start, length)
Метод, который возвращает часть строки от start до (не включая) end.
str.slice(start , end)
Как проверить пустой массив или нет?
value = []; if(value.length) { ... } else { ... };
Как проверить что массив является массивом?
Array.isArray(массив)
Выражение - это
любой валидный блок кода, который имеет ценность.
Оператор - это
символ или ключевое слово, которое производит вычисление над некоторыми значениями. Эти значения называют операндами.
Чем отличается строгое равенство/неравенство от нестрогого?
нестрогое - проверяется только значения
строгое - проверяется и тип данных
Синтаксис тернарного оператора
выражение ? если true : если false
Метод, который возвращает новый массив, в который копирует элементы, начиная с индекса start и до end
arr.slice([start], [end])
С помощью какого метода мы можем добавлять, удалять и заменять элементы? Его синтаксис
arr.splice(index[, deleteCount, elem1, …, elemN])
Он начинает с позиции index, удаляет deleteCount элементов и вставляет elem1, …, elemN на их место. Возвращает массив из удалённых элементов.
Какой метод возвращает перевернутый массив?
arr.reverse()
Какие два метода могут сделать копию массива?
- slice, если в него ничего не передать.
2. concat, если в скобки передать массив.
Как называется метод, который создаёт новый массив, в который копирует данные из других массивов и дополнительные значения? Синтаксис
arr.concat(arg1, arg2…)
Какой метод делает из массива строку? Что принимает в качестве аргумента
arr.join(). Принимает разделитель. Если пустой, будет все через запитую, если ‘’, то слитно, если ‘ ‘, то через пробел
Метод, который из строки делает массив?
str.split(принимает разделитель)
Что такое ф-я высшего порядка?
ф-я, которая принимает в качестве параметров другие ф-и или возвращает ф-и
Что могут ф-и в JS?
- храниться в переменной, объекте или массиве.
- передаваться как аргументы в другую функцию.
- могут быть возвращены из функции.
Что такое ф-я обратного порядка (колбэк)?
Функции обратного вызова передаются в качестве аргумента в другие функции.
Что делает метод call()? Синтаксис
func.call(context, arg1, arg2, …)
При этом вызывается функция func, первый аргумент call становится её this, а остальные передаются «как есть».
Что делает метод apply()? Синтаксис
Он выполняет func, устанавливая this=context и принимая в качестве списка аргументов псевдомассив args.
func.apply(context, args)
Как решить проблему отсутствия arguments в стрелочных функциях?
можно решить путём сочетания функций-стрелок с rest оператором: const printParams = (...props) => console.log(props); printParams('test', 123); // ["test", 123]
this у стрелочных ф-й
Для стрелочных функций не существует “собственного” this, то есть они используют this “выше” уровнем - тот this, который определяется в момент создания актуального окружения, в котором находится стрелочная функция.
Для чего используется метод reduce()?Синтаксис
используется для последовательной обработки каждого элемента массива с сохранением промежуточного результата.
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.
Возвращаемое значение
Для чего используют метод filter() и что она делает
используется для фильтрации массива через функцию.
Он создаёт новый массив, в который войдут только те элементы arr, для которых вызов callback(item, i, arr) возвратит true.
Что делает метод map()?
Он вызывает функцию для каждого элемента массива и возвращает массив результатов выполнения этой функции.
Что делает метод some()?
проверяет, удовлетворяет ли какой-либо элемент массива условию, заданному в передаваемой функции.
arr.some(callback(element => условие)
Что делает метод every()?
проверяет, удовлетворяют ли все элементы массива условию, заданному в передаваемой функции
Синтаксис forEach()
arr.forEach(function(item, index, array) { // ... делать что-то с item });
Синтаксис reduce()?
let value = arr.reduce(function(previousValue, item, index, array) { // ... }, [initial]); Функция применяется по очереди ко всем элементам массива и «переносит» свой результат на следующий вызов.
Аргументы:
previousValue – результат предыдущего вызова этой функции, равен initial при первом вызове (если передан initial),
item – очередной элемент массива,
index – его индекс,
array – сам массив.
Что такое замыкания?
это функции, ссылающиеся на независимые (свободные) переменные. Другими словами, функция, определённая в замыкании, «запоминает» окружение, в котором она была создана.
Какие три типа кода существуют в ECMAScript:
- глобальный код ( window и все его свойства и методы );
- код функции ( function foo() { …some code… } );
- eval код ( eval(‘1 + 1’) ).
Что такое лексическое окружение?
это структура данных, которая хранит информацию по идентификаторам переменных. Тут идентификатор обозначает имя переменных/функций, а переменная настоящий объект[включая тип функции] или примитивное значение.
Что каждый раз делает JS-движок, когда создаёт контекст выполнения для выполнения функции или глобального кода?
создаёт и новое лексическое окружение для хранения переменных, объявляемых в этой функции в процессе её выполнения.
Какие два компонента есть у лексического окружения?
- Запись в окружении(environment record) это место хранятся объявления переменной или функции.
- Ссылка на внешнее лексическое окружение – то есть то, которое соответствует коду снаружи (снаружи от текущих фигурных скобок).
Что такое переменная с точки зрения лексического окружения?
это просто свойство специального внутреннего объекта: Environment Record. «Получить или изменить переменную», означает, «получить или изменить свойство этого объекта».
В чем отличие переменных от Function Declaration?
В отличие от переменных, объявленных с помощью let, Function Declaration полностью инициализируются не тогда, когда выполнение доходит до них, а раньше, когда создаётся лексическое окружение.
Какое значение будет использовать функция при выполнении?
Функция получает текущее значение внешних переменных, то есть, их последнее значение
Что такое [[Environment]]?
Все функции «при рождении» получают скрытое свойство [[Environment]], которое ссылается на лексическое окружение места, где они были созданы.
Самый простой способ сделать глубокое копирование?
JSON let newObject = JSON.parse(JSON.stringify(obj));
Какой метод возвращает массив ключей?
Object.keys(obj)
Какой метод возвращает массив пар [ключ, значение]?
Object.entries(obj)
Какой метод возвращает массив значений?
Object.values(obj)
Какой метод получив массив пар вида [ключ, значение], он создаёт из них объект?
Object.fromEntries()