Coffeescriptのドキュメントを読んだとき、私は存在する演算子に関するわずかなドキュメントに混乱しました。ドキュメントには次のように記載されています
It( ) は、数値や文字列を処理する場合に、提供する
?=
よりも安全な条件付き割り当てに使用することもできます。||=
?=
と演算子の違いは何ですか?||=
また、どちらをいつ使用する必要がありますか?
Coffeescriptのドキュメントを読んだとき、私は存在する演算子に関するわずかなドキュメントに混乱しました。ドキュメントには次のように記載されています
It( ) は、数値や文字列を処理する場合に、提供する
?=
よりも安全な条件付き割り当てに使用することもできます。||=
?=
と演算子の違いは何ですか?||=
また、どちらをいつ使用する必要がありますか?
?
||
まったく異なる(ただし重複している)条件を確認します。
||
演算子はJavaScriptの場合とまったく同じように機能するため、以下のようなものは0
誤り''
です||
。||
JavaScriptの意味で真実性をチェックします。
?
演算子は== null
JavaScriptで変換されるため、isまたは;の場合a ? b
のみです。CoffeeScriptの意味での定義をチェックします。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)
最初のループは5つのパンケーキと1つを提供し、6
2番目のループは、、、、 2つのパンケーキ、およびを提供しfalse
ます。0
''
6
デモ: http: //jsfiddle.net/ambiguous/PdLDe/1/
したがって、JavaScriptスタイルの動作(つまり、、、およびを無視する)のみが必要な場合0
はfalse
、''
おそらくが必要です||=
。スキップしたいだけでnull
、undefined
次に必要な場合?=
。