Страницы

Поиск по вопросам

четверг, 13 декабря 2018 г.

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

В стандарте 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"
и если вы захотите в свою функцию передать пустую строку, то поведение её будет слегка неожиданным.

Комментариев нет:

Отправить комментарий