Функции Flashcards
Что такое функция ?
Функция - это блок из различных команд
Какие Два способа задавания функции ? В чем их отличия ?
functinon declaration and function expression. Отличие в том, что при functinon declaration происходит hoisting и мы можем использовать функцию до ее объявления.
Когда используются анонимные функции ? Одинаково ли они работают с именованным ? В чем заключается отличие ?
Анонимные функции удобно использовать по месту, например передавать в какой-нибудь метод Или в вызов другой функции.Они работают одинаково, но по-разному ведут себя в консоли и стеке вызовов.С анонимными сложнее, поскольку вместо имён функций будут лишь номера строк.(при возникновении ошибки )
Почему JavaScript функции являются объектами первого класса (First-class Objects)?
Что такое IIFE? Какой синтаксис ? Когда применяется ?
Что такое лексическая область видимости ?
function outer() {
const a = 42
function inner() {
console.log(a)
// 42
}
}
Заметим, что у функции inner никаких локальных переменных нет — она работает только с локальной переменной функции outer.
Такой особенный доступ к локальным переменным родительской функции часто называют лексической областью видимости.
Как могут быть записаны остаточные параметры в аргументах функции ? Могут ли остаточные параметры стоять не в конце ?
Остаточные параметры могут быть обозначены через три точки …. Буквально это значит: «собери оставшиеся параметры и положи их в массив».Остаточные параметры должны располагаться в конце
Что такое псевдомассив arguments ? Какие недостатки arguments ?
Все аргументы функции находятся в псевдомассиве arguments под своими порядковыми номерами. Но у него есть один недостаток. Хотя arguments похож на массив, и его тоже можно перебирать, это всё же не массив. Он не поддерживает методы массивов, поэтому мы не можем, например, вызвать arguments.map(…).
К тому же, arguments всегда содержит все аргументы функции — мы не можем получить их часть. А остаточные параметры позволяют это сделать.
Имеют ли стрелочные функции псевдомассива arguments ?
Нет
Что делает оператор расширения ?
Когда …arr используется при вызове функции, он «расширяет» перебираемый объект arr в список аргументов.Оператор расширения можно использовать и для слияния массивов.В примерах выше мы использовали массив, чтобы продемонстрировать свойства оператора расширения, но он работает с любым перебираемым объектом.Посмотрим, что происходит. Под капотом оператор расширения использует итераторы, чтобы перебирать элементы. Так же, как это делает for..of.
Какой еще есть способ перебрать массив ? В чем отличие от […arr] ?
мы можем использовать и Array.from.
Но между Array.from(obj) и […obj] есть разница:
Array.from работает как с псевдомассивами, так и с итерируемыми объектами
Оператор расширения работает только с итерируемыми объектами