CoffeeScript里的or

CoffeeScript里的or,其实会被编译为 ||

这并没有什么令人惊奇之处。我惊讶的是类似这样一个表达式:

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!”?究竟等于那一个?或者是随机等于一个,哪个都可以?

猜测是优先等于前面这个,如果前面这个为false,那么等于后面那个。事实也是如此。

那么,这是node.js解释成这样的吗?不是的,放在浏览器里执行,也是同样的结果,说明这是javascript里的固有属性。

再次表明,我对javascript掌握得并不好。醉了。

word1 = null
word2 = null
hi = word1 or word2 or "Hello World!"
alert hi
执行结果一样的。

转载于:https://www.cnblogs.com/leftfist/p/4257848.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值