And*_*Mao 10 operators conditional-operator coffeescript
在阅读Coffeescript文档时,我对存在运算符的文档很少感到困惑.文件说明
对于您可能正在处理数字或字符串的情况,It(
?=)也可用于比||=提供更安全的条件分配.
?=和||=运营商之间有什么区别?何时应该使用哪一个?
mu *_*ort 19
?并||检查完全不同(但重叠)的条件.
该||运营商的工作方式完全相同的方式,因为它在JavaScript这样做事情喜欢0和''有falsey尽可能||而言; ||检查JavaScript意义上的真实性.
的?操作者转换为== null在JavaScript所以a ? b只有b当a是null或undefined; ?检查CoffeeScript意义上的定义.
考虑这些:
for v in [false, 0, '', null, undefined, 6]
do (v) ->
a = v
a ||= 'pancakes'
console.log("#{v} ||= 'pancakes':", a)
for v in [false, 0, '', null, undefined, 6]
do (v) ->
a = v
a ?= 'pancakes'
console.log("#{v} ?= 'pancakes':", a)
Run Code Online (Sandbox Code Playgroud)
第一个循环会给你五个煎饼一个6,第二个循环会给你一个false,0,''两个煎饼,和6.
演示:http://jsfiddle.net/ambiguous/PdLDe/1/
所以,如果你只想要的JavaScript风格的行为(即0,false和''将被忽略不计),那么你可能想||=.如果你只是想跳过null和undefined然后你想?=.