这对我没有意义,但我有一种感觉,我看到了使用此代码的代码:
var abc = def || ghi;
我的问题是,这有效吗?我们可以为变量声明添加条件吗?我想答案是否定的,但我心里想到的是,我曾在代码中看到类似的东西。
答案 0 :(得分:17)
如果abc
不是假的(def
,false
,null
,{{1}或者是一个空字符串),如果没有,则为undefined
的值。
这相当于:
0
这通常用于选项:
ghi
如果您致电var abc;
if (def) abc = def;
else abc = ghi;
,则会使用您提供的值。如果您什么都不提供,它会使用function myfunc (opts) {
var mything = opts.mything || "aaa";
}
。
在这种情况下,为了让调用者完全跳过参数,我们也可以用
启动函数myfunc({mything:"bbb"})
答案 1 :(得分:6)
代码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;
答案 2 :(得分:3)
是,您可以为变量声明添加条件
您可以像这样使用它,
function greet(person) {
var name = person || 'anonymouse';
alert('Hello ' + name);
}
greet('jashwant');
greet();
答案 3 :(得分:0)
好的,看,就像是,你要么检查一个是否属实。真实的将被退回。 :)
var abc = def || ghi;
相当于:
var abc = return (def == true) or (ghi == true)