Javascript 您可以将条件添加到变量声明中吗?
这对我来说毫无意义,但我有一种感觉,我看到一个代码在使用:Javascript 您可以将条件添加到变量声明中吗?,javascript,variables,declaration,Javascript,Variables,Declaration,这对我来说毫无意义,但我有一种感觉,我看到一个代码在使用: var abc=def|ghi; 我的问题是,这是否有效?我们可以在变量声明中添加条件吗?我想答案是否定的,但我有一次在代码中看到了类似的东西。是的,您可以向变量声明添加条件 你可以这样使用它 function greet(person) { var name = person || 'anonymouse'; alert('Hello ' + name); } greet('jashwant'); greet();
var abc=def|ghi;
我的问题是,这是否有效?我们可以在变量声明中添加条件吗?我想答案是否定的,但我有一次在代码中看到了类似的东西。是的,您可以向变量声明添加条件 你可以这样使用它
function greet(person) {
var name = person || 'anonymouse';
alert('Hello ' + name);
}
greet('jashwant');
greet();
如果
def
的值不为falsy(即非false
,null
,未定义的,0
或空字符串),则为abc
的值,如果不是,则为ghi
的值
这相当于:
var abc;
if (def) abc = def;
else abc = ghi;
var abc = return (def == true) or (ghi == true)
这通常用于以下选项:
function myfunc (opts) {
var mything = opts.mything || "aaa";
}
如果调用myfunc({mything:“bbb”})
它将使用您给定的值。如果您不提供任何内容,它将使用“aaa”
在这种情况下,为了让调用者完全跳过参数,我们还可以使用
opts = opts || {};
好吧,你看,这就像,你要么检查一个是不是真的。将返回真实的一个。:)
相当于:
var abc;
if (def) abc = def;
else abc = ghi;
var abc = return (def == true) or (ghi == true)
代码varabc=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;
+1.如果“def
的计算结果为true”,则可能更准确,因为如果是0
,则空字符串,false
等。然后abc
将获得ghi
的值。刚才看到了我昨天读到的一个实例(javascript)。即使第一个示例中的def
为false,abc
也不是全局的。我说的对吗?abc
可以是全局的,这取决于它的定义。小心。您的答案意味着此操作始终指定布尔值。只有当def
和ghi
是布尔值时,才会出现这种情况。在所有情况下,abc
将采用ghi
(无论该值是什么)的值,除非def
评估为true。如果def
是“hello”,那么abc将是“hello”(而不是booelan)。如果def
为false/empty/zero/undefined/等,且ghi
为“world”,则abc
将为“world”(同样,不是布尔值)。