当我看到这段代码时,我正在查看 highcharts 的最新代码:
wrap(opacityHook, 'get', function (proceed, elem, computed) {
return elem.attr ? (elem.opacity ||Â 0) : proceed.call(this, elem, computed);
});
为什么源代码中有一个字符?这不可能是正确的,不是吗?
最佳答案
在本例中,当所述元素属性 (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
为 未定义
,则抛出错误。
关于javascript - Highstock 源代码中的奇怪字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17684403/