display
变量在实际功能中是可选的,但我不明白|| true
实际检查这种情况是什么? if(display || true){...}
if(display || true){
$("#container").html(this.displayReport(this.tabData, extraInfo || false));
}
答案 0 :(得分:2)
||是一个逻辑或操作,这意味着显示或 true将始终为true。
您的代码实际上意味着XDocument something = connector.Run(serviceCredentials, connectorids, connectorkeys);
,而if是非常多余的。
答案 1 :(得分:1)
if(display || true)
此条件语句检查display的值是否为true。如果是,则该语句自动为真。如果display为false,则检查第二个条件。
如果一个条件或条件为真,则只有一个陈述必须为真。
在这种情况下,代码将始终返回true,因为其中一个语句为真。
答案 2 :(得分:1)
这是||
作为合并运算符的错误用法。如前所述,这将始终返回true
。但是,假设display
是一个字符串,而不是布尔值。在那种情况下
var result = display || "(none");
将返回display
,或者如果未设置display
,则"(none)"
。
这利用了以下事实:在Javascript中,undefined
和null
都评估为false
。这意味着当值被取消分配时,您可以使用||
来返回“备份”值 - 左操作数为false,因此无论如何,评估结果都是正确的值。
编写代码示例的人可能会从一些旧代码或一些javascript手册中复制它,而不了解它实际上是如何工作的,以及为什么它在你的情况下不起作用。在这里要实现的关键是,false
或0
等值也评估为false
- 因此在您的情况下,您确实会得到{{1} }}
请注意,true
将按预期工作。只是extraInfo || false
给你带来了麻烦。要解决此问题,只需使用
true
如果未定义display,则类型敏感的比较将返回false,因此您将获得默认的 if (!(display === false))
。否则,如果显示为true
,则再次获得true
,如果显示为true
,则会获得false
,即!true
。
答案 3 :(得分:1)
尝试改变,
if(display || true){
$("#container").html(this.displayReport(this.tabData, extraInfo || false));
}
到
if(true){
$("#container").html(this.displayReport(this.tabData, extraInfo || false));
}