2016-05-11 5 views
4

jsコードは何を意味しますか?私が思うJavascript短い条件の意味

this.totals || (this.totals={}); 

..

​​

はこの正しいですか?

+0

'もし(typeof this.totals ==" undefined "){'これは良いでしょう。 'false' /' 0'は条件を破る可能性があるためです。 –

+0

ほぼ正しいです。全体は表現であり、 'this.totals'の(新しい値)に評価されます。 – Thilo

+1

@Thilo:最後にセミコロンを忘れないでください:-) – Bergi

答えて

8

ほとんど 100%正しいです。 ||に遭遇すると、最初の部分が評価され、真実の値であれば返されます。偽の値の場合、2番目の部分が評価され、この場合はthis.totalsから{}に設定され、評価は{}です。

+1

なぜ「*ほとんど* 100%」なのですか? – Bergi

+3

コメントでThiloが指摘した 'if'文とは異なり、これは式なので結果を返します。もしあなたが 'var a = this.totals || (this.totals = {}) '' a'も 'this.totals'と同じです。だから同等の文は 'if(!this.totals){this.totals = {}; } var a = this.totals; ' – winhowes

+0

最後に'; 'をつけると、式*文* :-) – Bergi

関連する問題