这对我来说没有意义,但我感觉我看到了一个使用这个的代码:
var abc = def || ghi;
我的问题是,这有效吗?我们可以在变量声明中添加条件吗?我想答案是否定的,但我有一个想法,我曾经在代码中看到过类似的东西。
这对我来说没有意义,但我感觉我看到了一个使用这个的代码:
var abc = def || ghi;
我的问题是,这有效吗?我们可以在变量声明中添加条件吗?我想答案是否定的,但我有一个想法,我曾经在代码中看到过类似的东西。
这给出了if 它不是 falsyabc
的值(即 not 、、或空字符串),或者 if not 的值。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 || {};
代码变量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)