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