Пример использования нового синтаксиса функции стрелки =>
Вот несколько случаев, когда вы, вероятно, не захотите их использовать:
Когда это делает ваш код менее читаемым. С обычными функциями люди знают, чего ожидать. С функциями стрелок может быть трудно сразу понять, на что вы смотрите. Методы объекта, функции обратного вызова с динамическим контекстом. Если вам нужен динамический контекст, стрелочные функции — не лучший выбор.
Когда вам следует использовать Стрелочные функции, лучше всего подходят для всего, что требует привязки this
к контексту, а не к самой функции.
Несмотря на то, что они анонимны, мне также нравится использовать их с такими методами, как map
и reduce
, потому что я думаю, что это делает мой код более читабельным. Для меня плюсы перевешивают минусы
Различия в использовании foo
между function foo() {}
и var foo = function() {}
Так же, как объявления переменных должны начинаться с «var», объявления функций должны начинаться с «function». Функция только объявлена здесь. Для ее использования она должна быть вызвана с использованием имени функции. например, bar();
Функцию JavaScript также можно определить с помощью выражения. Выражение функции можно сохранить в переменной: var x = function (a, b) {return a * b};
После того как функциональное выражение было сохранено в переменной, эту переменную можно использовать как функцию. Функции, хранящиеся в переменных, не нуждаются в именах функций. Они всегда вызываются (вызываются) с использованием имени переменной. Объявления функций загружаются перед выполнением любого кода, а Выражения функций загружаются только тогда, когда интерпретатор достигает этой строки кода.
Пример деструктуризации объекта или массива?
Деструктуризация присваивания — классная функция, появившаяся вместе с ES6. Деструктурирование – это выражение JavaScript, позволяющее распаковывать значения из массивов или свойства из объектов в отдельные переменные. То есть мы можем извлекать данные из массивов и объектов и назначать их переменным.
Преимущество использования синтаксиса стрелки для метода в конструкторе?
Arrow functions
больше похожи на операторы функций, за исключением того, что они bind
преобразуют this в parent scope
. Если аргумент arrow function is in top scope
, this
будет ссылаться на window/global scope
, в то время как стрелочная функция внутри обычной функции будет иметь этот аргумент таким же, как и ее внешняя функция.
С функциями arrow
this
привязывается к объемлющему scope
во время создания и не может быть изменено. Новый оператор, связывание, вызов и применение не влияют на это.
Закрытие в JavaScript
Замыкание — это функция в JavaScript, при которой внутренняя функция имеет доступ к внешним (включающим) переменным функции — цепочке области видимости. замыкание имеет три цепочки областей видимости: она имеет доступ к своей собственной области видимости — переменным, определенным в фигурных скобках. он имеет доступ к переменным внешней функции.