&安培;&安培; javascript函数返回语句中的运算符不应返回布尔值

时间:2014-02-28 20:53:32

标签: javascript

我有以下功能:

function getLabelContent(element) {
    var label = element.find('label');
    return label[0] && label.html();
 }

我对 return语句感到困惑,特别是我认为用来评估布尔表达式操作数的&&运算符。

上述退货声明意味着什么?

1 个答案:

答案 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');