JavaScript ES6 внес потрясающие изменения в мир веб-разработки. Новые дополнения к языку JavaScript открыли новые возможности.
Одним из наиболее популярных изменений стало добавление стрелочных функций в JavaScript. Стрелочные функции - это новый способ написания выражений функций JavaScript, дающий вам два разных способа создания функций в вашем приложении.
Если вы эксперт в традиционных функциях JavaScript, функции со стрелками потребуют некоторой настройки. Давайте посмотрим, что это такое, как они работают и какую пользу вам они приносят.
Что такое стрелочные функции JavaScript?
Стрелочные функции - это новый способ написания функциональных выражений, которые были включен в выпуск JavaScript ES6 . Они похожи на выражения функций JavaScript, которые вы использовали, с некоторыми немного другими правилами.
Стрелочные функции всегда анонимны, имеют разные правила для
this
, и имеют более простой синтаксис, чем традиционные функции.
как остановить блокировку всплывающих окон на хроме
Эти функции используют новый токен стрелки:
=>
Если вы когда-либо работали с Python, эти функции очень похожи на Лямбда-выражения Python .
Синтаксис этих функций немного чище, чем у обычных функций. Следует помнить о нескольких новых правилах:
- Ключевое слово функции удалено
- Ключевое слово return необязательно
- Фигурные скобки необязательны
Есть много небольших изменений, которые нужно сделать, поэтому давайте начнем с базового сравнения функциональных выражений.
Как использовать стрелочные функции
Стрелочные функции просты в использовании. Понимание стрелочных функций легче по сравнению с традиционными функциональными выражениями.
Вот выражение функции, которое складывает два числа; сначала используя традиционный метод функции:
let addnum = function(num1,num2){
return num1 + num2;
};
addnum(1,2);
>>3
Это довольно простая функция, которая принимает два аргумента и возвращает сумму.
Вот выражение, измененное на стрелочную функцию:
let addnum = (num1,num2) => { return num1 + num2;};
addnum(1,2);
>>3
Синтаксис функции сильно отличается при использовании стрелочной функции. Ключевое слово функции удалено; маркер стрелки сообщает JavaScript, что вы пишете функцию.
Фигурные скобки и ключевое слово return остались. Они не являются обязательными со стрелочными функциями. Вот еще более простой пример той же функции:
let addnum = (num1,num2) => num1 + num2;
Ключевое слово return и фигурные скобки исчезли. Осталась очень чистая однострочная функция, которая составляет почти половину кода, чем исходная функция. Вы получите тот же результат с гораздо меньшим количеством написанного кода.
Есть еще кое-что о стрелочных функциях. давайте погрузимся глубже, чтобы вы лучше почувствовали, на что они способны.
Функции стрелок
Функции стрелок имеют множество различных применений и функций.
Windows 10 служба профилей пользователей не смогла войти в систему
Обычные функции
Стрелочные функции могут использовать один или несколько аргументов. Если вы используете два или более аргумента, вы должны заключить их в круглые скобки. Если у вас только один аргумент, скобки использовать не нужно.
let square = x => x * x
square(2);
>>4
Стрелочные функции можно использовать без аргументов. Если вы не используете аргументы в своей функции, вы должны использовать пустые круглые скобки.
let helloFunction = () => Console.log('Hello reader!');
helloFunction();
>>Hello reader!
Такие простые функции используют гораздо меньше кода. Представляете, насколько проще сложный проект как слайд-шоу JavaScript становится, когда у вас есть более простой способ писать функции.
Используя это
Концепция чего-либо
this
обычно является самой сложной частью использования JavaScript. Стрелочные функции делают
this
проще в использовании.
Когда вы используете стрелочные функции
this
будет определяться включающей функцией. Это может создать проблемы, возникающие при создании вложенных функций и необходимости
this
применить к вашей основной функции
Вот популярный пример, показывающий обходной путь, который нужно использовать с обычными функциями.
function Person() {
var that = this; //You have to assign 'this' to a new variable
that.age = 0;
setInterval(function growUp() {
that.age++;
}, 1000);
}
Присвоение стоимости
this
в переменную делает его доступным для чтения, когда вы вызываете функцию внутри своей основной функции. Это беспорядочно, вот лучший способ сделать это с помощью стрелочных функций.
function Person(){
this.age = 0;
setInterval(() => {
this.age++; // Now you can use 'this' without a new variable declared
}, 1000);
}
Хотя они отлично подходят для функций, их не следует использовать для создания методов внутри объекта. Стрелочные функции не используют правильную область видимости для
this
.
Вот простой объект, который создает внутри метод с помощью стрелочной функции. Метод должен уменьшить начинки переменная на единицу при вызове. Вместо этого он вообще не работает.
как поднять яркость на windows 10
let pizza = {
toppings: 5,
removeToppings: () => {
this.toppings--;
}
}
//A pizza object with 5 toppings
>pizza
>>{toppings: 5, removeToppings: f}
pizza.removeToppings(); //The method will not do anything to the object
>pizza
>>{toppings: 5, removeToppings: f} //Still has 5 toppings
Работа с массивами
Используя стрелочные функции, вы можете упростить код, используемый для работы с методами массива. Массивы и методы массива являются очень важной частью JavaScript так что вы будете их часто использовать.
Есть несколько полезных методов, например карта метод, который запускает функцию для всех элементов массива и возвращает новый массив.
let myArray = [1,2,3,4];
myArray.map(function(element){
return element + 1;
});
>> [2,3,4,5]
Это довольно простая функция, которая добавляет единицу к каждому значению в массиве. Вы можете написать ту же функцию с меньшим количеством кода, используя стрелочную функцию.
let myArray = [1,2,3,4];
myArray.map(element => {
return element + 1;
});
>> [2,3,4,5]
Теперь читать стало намного проще.
Создание объектных литералов
Стрелочные функции можно использовать для создания объектных литералов в JavaScript. Обычные функции могут их создавать, но они немного длиннее.
let createObject = function createName(first,last) {
return {
first: first,
last: last
};
};
Вы можете создать тот же объект с помощью стрелочной функции, используя меньше кода. Используя обозначения стрелок, вам нужно будет заключить тело функции в круглые скобки. Вот улучшенный синтаксис со стрелочными функциями.
let createArrowObject = (first,last) => ({first:first, last:last});
Стрелочные функции JavaScript и не только
Теперь вы знаете, как функции стрелок JavaScript упрощают вашу жизнь как разработчика. Они сокращают синтаксис, дают вам больше контроля, используя
this
, упростят создание объектов и предоставят вам новый способ работы с методами массива.
Введение стрелочных функций, наряду со многими другими функциями, в JavaScript ES6 показывает, насколько важным стал JavaScript в веб-разработке. Однако вы можете сделать гораздо больше.
Хотите узнать больше о JavaScript? Изучите эти JavaScript-фреймворки. Плюс наш Памятка по JavaScript предоставляет ценную информацию и узнает больше о как работает JavaScript может сделать вас лучшим разработчиком.
Делиться Делиться Твитнуть Эл. адрес 6 звуковых альтернатив: лучшие бесплатные или дешевые аудиокнигиЕсли вы не хотите платить за аудиокниги, вот несколько отличных приложений, которые позволяют вам слушать их бесплатно и легально.
Читать далее Похожие темы- Программирование
- JavaScript
Энтони Грант - внештатный писатель, освещающий программирование и программное обеспечение. Он специализируется в области компьютерных наук, занимается программированием, Excel, программным обеспечением и технологиями.
Ещё от Anthony GrantПодписывайтесь на нашу новостную рассылку
Подпишитесь на нашу рассылку, чтобы получать технические советы, обзоры, бесплатные электронные книги и эксклюзивные предложения!
Нажмите здесь, чтобы подписаться