CoffeeScript裏的or,其實會被編譯爲 ||javascript
這並無什麼使人驚奇之處。我驚訝的是相似這樣一個表達式:java
word = null hi = word or "Hello World!" alert hi
var hi, word; word = null; hi = word || "Hello World!"; alert(hi);
這句話怎麼理解呢?要麼等於word,要麼等於 「Hello World!」?究竟等於那一個?或者是隨機等於一個,哪一個均可以?node
猜想是優先等於前面這個,若是前面這個爲false,那麼等於後面那個。事實也是如此。python
那麼,這是node.js解釋成這樣的嗎?不是的,放在瀏覽器裏執行,也是一樣的結果,說明這是javascript裏的固有屬性。瀏覽器
再次代表,我對javascript掌握得並很差。醉了。ruby
word1 = null word2 = null hi = word1 or word2 or "Hello World!" alert hi執行結果同樣的。