你可以添加一个条件变量声明?(Can you add a condition to a variab

2019-06-25 21:23发布

这是没有意义的给我,但我有一种感觉,我看到使用这个代码:

var abc = def || ghi;

我的问题是,这是有效的? 我们可以添加一个条件变量声明? 我想答案是否定的,但我有这个在我的脑海里,我看到的代码类似的东西一次。

Answer 1:

这得到abc的值def如果不是falsy(即不falsenullundefined0或空字符串),或的值ghi如果不是。

这相当于:

var abc;
if (def) abc = def;
else abc = ghi;

这是常用的选项:

function myfunc (opts) {
    var mything = opts.mything || "aaa";
}

如果调用myfunc({mything:"bbb"})它使用你给的值。 它采用"aaa"如果你提供什么。

在这种情况下,为了让呼叫者完全跳过参数,我们也已经开始与功能

opts = opts || {};


Answer 2:

代码VAR abc = def || ghi; 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;


Answer 3:

是的 ,你可以添加条件变量声明

您可以使用它像这样,

function greet(person) {
    var name = person || 'anonymouse';
    alert('Hello ' + name);
}
greet('jashwant');
greet();​

的jsfiddle演示



Answer 4:

好吧,看,它是一样的东西,你要么检查,如果有一个为真。 真正的一个将被退回。 :)

var abc = def || ghi;

相当于:

var abc = return (def == true) or (ghi == true)


文章来源: Can you add a condition to a variable declaration?