当我看到这段时,我正在查看最新的highcharts代码:
wrap(opacityHook, 'get', function (proceed, elem, computed) {
return elem.attr ? (elem.opacity ||Â 0) : proceed.call(this, elem, computed);
});
为什么源代码中有一个字符?这可能不对,不是吗?
答案 0 :(得分:1)
在这种情况下,当元素属性(elem.opacity
)为falsey时,看起来这是一种抛出异常的快捷方法。
运行以下语句会引发“运行时”错误:
alert(elem.opacity ||Â 0);
写作比写作短:
alert(elem.opacity ? elem.opacity : throw 'some error message');
注意:throw
语句将无法正常工作(写入控制台“某些错误消息”) - 因为三元表达式应该返回一个值。
因此,(elem.opacity ||Â 0)
足以使代码简洁/简洁和防御,但不是非常语义......
简而言之
以下内容:
... (elem.opacity ||Â 0) ...
转换为:
如果elem.opacity
为undefined
,则会出错。