我有以下功能:
function getLabelContent(element) {
var label = element.find('label');
return label[0] && label.html();
}
我对 return语句感到困惑,特别是我认为用来评估布尔表达式操作数的&&
运算符。
上述退货声明意味着什么?
答案 0 :(得分:9)
&&
和||
运算符不会在JavaScript中返回布尔值。
a = b && c;
基本上相当于:
a = !b ? b : c;
,而
a = b || c;
基本上相当于:
a = b ? b : c;
在某些情况下,这些运算符的合并行为很有用。
对于||
运算符,它可用于帮助扩展可能存在或不存在的名称空间:
//use window.foo if it exists, otherwise create it
window.foo = window.foo || {};
&&
运算符通常用于安全控制台日志记录:
//don't call console.log if there's no console
window.console && console.log('something');