В стандарте ES-2015 появилась возможность задавать параметры функции по умолчанию, выглядит это так:
function name(name = 'noname') {
console.log(name);
}
name()
Однако такого же эффекта можно было добиться с помощью хака:
function name(name) {
var name = name || 'noname'
console.log(name);
}
name()
При этом Babel транслирует такую функцию вот так:
function name() {
var name = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'noname';
console.log(name);
}
name();
Какой вариант правильнее: как предлагает Babel или с использованием логического ||?
Ответ
Правильнее как бабель, разумеется. Потому что например:
> "" || "default"
-> "default"
и если вы захотите в свою функцию передать пустую строку, то поведение её будет слегка неожиданным.
Комментариев нет:
Отправить комментарий