JavaScript 求值如何返回对象?
我不希望您理解这段代码的含义:
var columnOverrides = rowMetadata &&
rowMetadata.columns &&
(rowMetadata.columns[column.id] || rowMetadata.columns[getColumnIndex(column.id)]);
return columnOverrides.formatter;
但是从语法上讲,逻辑表达式的求值如何返回对象?
I don't expect you to understand what was meant with this piece of code:
var columnOverrides = rowMetadata &&
rowMetadata.columns &&
(rowMetadata.columns[column.id] || rowMetadata.columns[getColumnIndex(column.id)]);
return columnOverrides.formatter;
But syntactically, how can the evaluation of a logical expression return an object?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
发布评论
评论(3)
情魔剑神2024-12-20 15:23:55
在 JavaScript 中,a && b
首先评估 a
。如果 a
是 falsy 值,则它返回a
,否则返回b
。 一个|| b
工作原理相同;如果a
为真,则返回a
,否则返回b
。
这可能会导致一些非常好的、简洁但清晰的代码(一旦你理解了它),比如“获取第一个非空值”:
var a = null;
var b = null;
var c = 5;
var d = "Hello";
alert(a && b && c && d); // 5
或者简单的跨浏览器事件:
var f = window.addEventListener || window.attachEvent || (function() {});
f.call(window, 'load', function() {
alert('Loaded!');
}, false);
~没有更多了~
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
在 JavaScript 中,
&&
和||
不一定返回 true 或 false。他们返回了他们的论点之一。一个|| b
大致相当于a ? a:b
。a && b
大致相当于a ? b:a
。更多信息可以在这里找到:
In JavaScript
&&
and||
don't necessarily return true or false. They return one of their arguments.a || b
is roughly equivalent toa ? a : b
.a && b
is roughly equivalent toa ? b : a
.More information can be found here: