Skip to content

arrowFunction

garevna edited this page Dec 25, 2018 · 9 revisions

🎓 Стрелочные функции

ES6

✋ Стрелочные функции всегда анонимные

🎓 Синтаксис

function

В сигнатуре стрелочной функции нет слова function

( параметры ) => { тело функции }

var res = ( x, y ) => x * y
res ( 2, 5 )

✋ Если тело функции состоит из одной операции, фигурные скобки можно опустить

( name = "user" ) => console.info ( "Hi, " + name )

✋ Если у функции всего один формальный параметр, круглые скобки можно опустить

name => console.info ( "Hi, " + name )

✋ При отсутствии формальных параметров круглые скобки обязательны

() => console.info ( "Hi, user"  )

✋ Если тело функции состоит из одного выражения, значение которого возвращает функция, оператор return не нужен

☕ обычная функция
var res = function ( x, y ) { return x * y }
☕ стрелочная функция
var res = ( x, y ) => x * y

✋ Операторы ветвления кода ( кроме тернарного оператора ) и операторы цикла нужно заключать в фигурные скобки

☕ оператор for
() => {
    for ( var i = 0; i < 5; i++ )
        console.log ( i )
}
☕ оператор switch
var answerArrow = question => { 
    switch ( question ) {
        case "who":
            return "student"
        case "what":
            return "develop" 
        case "where":
            return "Kharkiv" 
        default:
            return "I don't undestand your question"
    }
}
☕ тернарный оператор
var answerArrow = question =>  
    question === "who" ? "Irina" :
        question === "what" ? "develop" :
            question === "where" ? "Kharkiv" :
                "I don't undestand your question"

⛔ arguments

У стрелочных функций нет объекта arguments

При попытке обратиться к объекту arguments из стрелочной функции будет сгенерировано исключение ( ReferenceError )

☝️ Если стрелочная функция объявлена внутри обычной функции, то переменные контекста родительской функции будут доступны для стрелочной функции ( см. цепочка областей видимости ), поэтому внутри нее будет доступен объект arguments родительской функции

function testArguments () {
    var arrowFunc = () =>  console.log ( arguments )
    arrowFunc ()
}
testArguments ( 5, false )

В результате работы кода в консоль будет выведен объект arguments функции testArguments


🎓 Контекст вызова

У стрелочных функций контекст вызова всегда будет контекстом, в котором функция была создана

то есть можно сказать, что у стрелочных функций есть контекст создания, а у обычных - контекст вызова в этом ключевое отличие стрелочных функций от обычных

© Irina H.Fylyppova 2018
Использование данных материалов или любой их части коммерческими школами ( курсами ) является нарушением авторских прав


Новая версия


1 2 3 4 5
6 7 8 9 10
11 12 13 14 15
16 17 18 19

Занятие 1

⤵️

Занятие 2

⤴️ ⤵️

Занятие 3

⤴️ ⤵️

Занятие 4

⤴️ ⤵️

Занятие 5

⤴️ ⤵️

Занятие 6

⤴️ ⤵️

Занятие 7

⤴️ ⤵️

Занятие 8

⤴️ ⤵️

Занятие 9

⤴️ ⤵️

Занятие 10

⤴️ ⤵️

Занятие 11

⤴️ ⤵️

Занятие 12

⤴️ ⤵️

Занятие 13

⤴️ ⤵️

Занятие 14

⤴️ ⤵️

Занятие 15

⤴️ ⤵️

Занятие 16

⤴️ ⤵️

Занятие 17

⤴️ ⤵️

Занятие 18

⤴️ ⤵️

Занятие 19

⤴️ ⤵️

⤴️

ico20 Дополнительно
dir-20 Справочная инфо

Clone this wiki locally