default params values - garevna/js-course GitHub Wiki

:mortar_board: Параметры функции по умолчанию

ES6

:raised_hand: В ES6 появилась возможность указывать в сигнатуре функции значения параметров по умолчанию:

:coffee:

var display = function ( name = "user", text = "welcome" ) {
        return  text + ', ' + name
}
При вызове функции без аргументов:
display ()
возвращаемое значение будет "welcome, user"
При вызове функции с одним аргументом
display ( "Иван" )
возвращаемое значение будет "welcome, Иван"
При вызове функции с двумя аргументами
display ( "Иван", "Добро пожаловать" )
возвращаемое значение будет "Добро пожаловать, Иван"
При вызове функции:
display ( undefined, "Добро пожаловать" )
возвращаемое значение будет "Добро пожаловать, user"

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

:raised_hand: Можно не только присваивать значения по умолчанию, но и вычислять их динамически:

:coffee:

var calcs = function ( x = 1, y = x + 1, z = x + y ) {
        console.log ( x, y, z )
}

calcs ()              //  1 2 3
calcs ( 2 )           //  2 3 5
calcs ( 4, 8 )        //  4 8 12
calcs ( 3, 1, 7 )     //  3 1 7