JavaScript计算如何返回对象?
我不希望您理解这段代码的含义:JavaScript计算如何返回对象?,javascript,syntax,Javascript,Syntax,我不希望您理解这段代码的含义: var columnOverrides = rowMetadata && rowMetadata.columns && (rowMetadata.columns[column.id] || rowMetadata.columns[getColumnIndex(column.id)]); return columnOverrides.formatter; 但是在语法上,逻辑表达式的求值如何返回一个对象呢?在Java
var columnOverrides = rowMetadata &&
rowMetadata.columns &&
(rowMetadata.columns[column.id] || rowMetadata.columns[getColumnIndex(column.id)]);
return columnOverrides.formatter;
但是在语法上,逻辑表达式的求值如何返回一个对象呢?在JavaScript中
&&
和|
不一定返回true或false。他们返回他们的一个论点
大致相当于a | | b
a?a:b
大致相当于a&&b
a?b:a
- 在JavaScript
&&
和|
中不一定返回true或false。他们返回他们的一个论点
大致相当于a | | b
a?a:b
大致相当于a&&b
a?b:a
a和&b
首先计算a
。如果a
是一个值,则返回a
,否则返回b
<代码>a | | b的工作原理相同;如果a
为真,则返回a
,否则返回b
这会产生一些非常好、简洁但清晰的代码(一旦您理解它),如“获取第一个非空值”:
或轻松的跨浏览器事件:
var f = window.addEventListener || window.attachEvent || (function() {});
f.call(window, 'load', function() {
alert('Loaded!');
}, false);
在JavaScript中,
a&&b
首先计算a
。如果a
是一个值,则返回a
,否则返回b
<代码>a | | b的工作原理相同;如果a
为真,则返回a
,否则返回b
这会产生一些非常好、简洁但清晰的代码(一旦您理解它),如“获取第一个非空值”:
或轻松的跨浏览器事件:
var f = window.addEventListener || window.attachEvent || (function() {});
f.call(window, 'load', function() {
alert('Loaded!');
}, false);
正如问题的答案一样-我认为在这段代码中有一个but-如果
rowmata
是null
或未定义的
或诸如此类,它将中断,并且如果您使用和&
这是一种可能性。只是一个提醒
最后一行也应该是:
return columnOverrides && columnOverrides.formatter;
正如问题的答案一样-我认为在这段代码中有一个but-如果
rowmata
是null
或未定义的
或诸如此类,它将中断,并且如果您使用和&
这是一种可能性。只是一个提醒
最后一行也应该是:
return columnOverrides && columnOverrides.formatter;
|
在这种情况下通常指的是“默认”运算符。|
在这种情况下通常指的是“默认”运算符。非常好的示例,尤其是第二个示例-让我大吃一惊。非常好的示例,尤其是第二个示例-让我大吃一惊。天哪,你有一些很好的技巧!事实上,原来的return
要复杂得多-我把它删掉是为了让我的问题更清楚-事实上它用了短路的方式。天哪,你真有本事!事实上,原来的return
相当复杂——为了让我的问题更清楚,我把它删掉了——事实上,它采用了短路的方式。