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执行结果同样的。