Можно ли добавить условие в объявление переменной?
Это не имеет смысла для меня, но у меня такое чувство, что я видел код, использующий это:
var abc = def || ghi;
мой вопрос в том, действительно ли это? Можем ли мы добавить условие к объявлению переменной? Я предполагаю, что ответ "нет", но у меня есть это в глубине души, что я видел что-то подобное в коде однажды.
4 ответов
здесь abc
значение def
если это не ложь (т. е. не false
, null
, undefined
, 0
или пустая строка), или значение ghi
если не.
это эквивалентно:
var abc;
if (def) abc = def;
else abc = ghi;
это обычно используется для выполнения следующих функций:
function myfunc (opts) {
var mything = opts.mything || "aaa";
}
если вы называете myfunc({mything:"bbb"})
он использует значение, которое вы даете. Он использует "aaa"
если вы ничего не дают.
в этом случае, чтобы позволить вызывающему полностью пропустить параметр, мы также можно было запустить функцию с помощью
opts = opts || {};
код var abc = def || ghi;
это то же самое как
if (def) { //where def is a truthy value
var abc = def;
} else {
abc = ghi;
}
вы хотите условие, как оператор if?
if (xxx==="apple") {
var abc = def;
} else {
abc = ghi;
}
который записывается как тернарный оператор:
var abc = (xxx==="apple") ? def : ghi;
да, вы можете добавить условие для переменной
вы можете использовать его так,
function greet(person) {
var name = person || 'anonymouse';
alert('Hello ' + name);
}
greet('jashwant');
greet();
хорошо, видите, это что-то вроде, Вы либо проверяете, верно ли это. Истинный будет возвращен. :)
var abc = def || ghi;
эквивалентно:
var abc = return (def == true) or (ghi == true)