在阅读 Coffeescript 文档时,我对存在操作符的文档很少感到困惑。该文件指出
It (
?=
) 也可以用于比||=
提供更安全的条件赋值,用于处理数字或字符串的情况。
?=
and运算符之间有什么区别,什么||=
时候应该使用一个和另一个?
在阅读 Coffeescript 文档时,我对存在操作符的文档很少感到困惑。该文件指出
It (
?=
) 也可以用于比||=
提供更安全的条件赋值,用于处理数字或字符串的情况。
?=
and运算符之间有什么区别,什么||=
时候应该使用一个和另一个?
?
并||
检查完全不同(但重叠)的条件。
操作符的工作方式与它在 JavaScript 中的||
工作方式完全相同,因此就所关心的而言,类似0
并且''
是错误的||
;||
检查 JavaScript 意义上的真实性。
运算符在 JavaScript 中被?
转换为,所以只有当is或; 检查 CoffeeScript 意义上的定义。== null
a ? b
b
a
null
undefined
?
考虑这些:
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)
第一个循环会给你五个煎饼和一个,6
第二个循环会给你一个false
,,,,两个煎饼和一个。0
''
6
演示:http: //jsfiddle.net/ambiguous/PdLDe/1/
因此,如果您只想要 JavaScript 样式的行为(即0
,false
和''
将被忽略),那么您可能想要||=
. 如果你只想跳过null
然后undefined
你想要?=
。