CoffeeScript裏的or

CoffeeScript裏的or,其實會被編譯爲 ||javascript

這並無什麼使人驚奇之處。我驚訝的是相似這樣一個表達式:java

word = null
hi = word or "Hello World!"
alert hi

最終翻譯成javascript是:

var hi, word;
word = null;
hi = word || "Hello World!";
alert(hi);

hi = word || "Hello World!"

這句話怎麼理解呢?要麼等於word,要麼等於 「Hello World!」?究竟等於那一個?或者是隨機等於一個,哪一個均可以?node

猜想是優先等於前面這個,若是前面這個爲false,那麼等於後面那個。事實也是如此。python

那麼,這是node.js解釋成這樣的嗎?不是的,放在瀏覽器裏執行,也是一樣的結果,說明這是javascript裏的固有屬性。瀏覽器

再次代表,我對javascript掌握得並很差。醉了。ruby

word1 = null
word2 = null
hi = word1 or word2 or "Hello World!"
alert hi
執行結果同樣的。
相關文章
相關標籤/搜索