2013-07-16 44 views
1

我一直在尋找最近的highcharts代碼,當我看到這一段:奇怪的字符在Highstock源代碼

wrap(opacityHook, 'get', function (proceed, elem, computed) { 
    return elem.attr ? (elem.opacity ||Â 0) : proceed.call(this, elem, computed); 
}); 

爲什麼會出現在源代碼中的一個角色?這可能是不對的,可以嗎?

回答

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.opacityundefined則拋出錯誤。