Функции Flashcards

1
Q

Что такое функция ?

A

Функция - это блок из различных команд

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

Какие Два способа задавания функции ? В чем их отличия ?

A

functinon declaration and function expression. Отличие в том, что при functinon declaration происходит hoisting и мы можем использовать функцию до ее объявления.

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

Почему JavaScript функции являются объектами первого класса (First-class Objects)?

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

Что такое IIFE? Какой синтаксис ? Когда применяется ?

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

Что такое лексическая область видимости ?

A

function outer() {
const a = 42

function inner() {
console.log(a)
// 42
}
}
Заметим, что у функции inner никаких локальных переменных нет — она работает только с локальной переменной функции outer.

Такой особенный доступ к локальным переменным родительской функции часто называют лексической областью видимости.

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

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

A

Остаточные параметры могут быть обозначены через три точки …. Буквально это значит: «собери оставшиеся параметры и положи их в массив».Остаточные параметры должны располагаться в конце

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

Что такое псевдомассив arguments ? Какие недостатки arguments ?

A

Все аргументы функции находятся в псевдомассиве arguments под своими порядковыми номерами. Но у него есть один недостаток. Хотя arguments похож на массив, и его тоже можно перебирать, это всё же не массив. Он не поддерживает методы массивов, поэтому мы не можем, например, вызвать arguments.map(…).
К тому же, arguments всегда содержит все аргументы функции — мы не можем получить их часть. А остаточные параметры позволяют это сделать.

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

Имеют ли стрелочные функции псевдомассива arguments ?

A

Нет

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

Что делает оператор расширения ?

A

Когда …arr используется при вызове функции, он «расширяет» перебираемый объект arr в список аргументов.Оператор расширения можно использовать и для слияния массивов.В примерах выше мы использовали массив, чтобы продемонстрировать свойства оператора расширения, но он работает с любым перебираемым объектом.Посмотрим, что происходит. Под капотом оператор расширения использует итераторы, чтобы перебирать элементы. Так же, как это делает for..of.

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

Какой еще есть способ перебрать массив ? В чем отличие от […arr] ?

A

мы можем использовать и Array.from.
Но между Array.from(obj) и […obj] есть разница:
Array.from работает как с псевдомассивами, так и с итерируемыми объектами
Оператор расширения работает только с итерируемыми объектами

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