Ответ 1
Что это означает
Если переменная secret
является ложью (одна из следующих):
-
false
-
0
-
''
(пустая строка) -
null
-
undefined
-
NaN
.. затем установите его в {}
(пустой объект - это то же самое, что и new Object()
).
Альтернативный код
Он также может быть записан следующим образом:
if (!secret) secret = {};
Но поскольку это больше, большинство людей предпочитают выше.
Почему?
Это решение полезно, поскольку javascript не имеет параметров функции по умолчанию.
Например, пример в PHP может выглядеть так:
<?php
function foo($bar = 'default') {
echo $bar;
}
?>
и в JS, который может быть
function foo(bar) {
bar = bar || 'default';
console.log(bar);
}
foo(); //default
foo(NaN); //default
foo(undefined); //default
foo(null); //default
foo(false); //default
foo(0); //default
foo(''); //default
foo('something'); //something
foo(12); //12
foo(1.2); //1.2
Что делать, если я хочу только установить значение по умолчанию, если ничего не было установлено?
Если вы только хотите проверить отсутствие значения (нет значений ложности), вы можете использовать typeof
в JS:
function foo(bar) {
if (typeof bar == 'undefined') bar = 'default';
console.log(bar);
}
foo(); //default
foo(undefined); //default
foo(NaN); //NaN
foo(null); //null
foo(false); //false
foo(0); //0
foo(''); //(empty string)
foo('something'); //something
foo(12); //12
foo(1.2); //1.2