2015-05-02 26 views
0

,以獲取有關按下了哪個鍵的信息,我現在用下面的代碼:Javascript:||的意思運營商在初始化VAR

function AddEventListeners() { 
    document.getElementById('txtHangman').addEventListener('keypress', TextHangman.bind(this), false); 
} 

然後在事件處理函數:

function TextHangman(_key) { 
    var _keypressed = _key.which || _key.key; 
} 

代碼工作,並給我的信息,我但我不明白什麼||操作員在啓動var _keypressed時會執行此操作。一些解釋會很好。

謝謝!

ģ

+2

DUP http://stackoverflow.com/questions/2802055/what-does-this-construct-xxy-mean –

回答

1

它意味着它與其他地方一樣。它在var聲明附近使用時沒有什麼特別之處。

如果左側評估爲真(即不是0undefined等),則評估爲左側。

否則,它評估爲右側。


優先規則意味着它在賦值之前得到解決。


本質上的代碼是一樣的:

if (_key.which) { 
    var _keypressed = _key.which; 
} else { 
    var _keypressed = _key.key; 
} 
+0

虛假值的列表可在https://developer.mozilla.org/en-US/docs/Glossary/Falsy – Patrick

0

這意味着當存在象在_key.whichnullundefined或0的任何值falsy那麼它應該與_key.key被初始化。

你可以看到它作爲快捷方式:

var _keypressed = _key.which; 
if (!_keypressed) { 
    _keypressed = _key.key; 
} 
+0

不只是空或未定義,所有虛假值 – Patrick

+0

或0或''或虛假 –

0

它提供了一個備用的變種。如果第一個選項爲false,爲空或未定義,則該變量將被設置爲第二個值