2017-02-12 10 views
0
// options 
if (options) { 
    this.deep = !!options.deep 
    this.user = !!options.user 
    this.lazy = !!options.lazy 
    this.sync = !!options.sync 
} else { 
    this.deep = this.user = this.lazy = this.sync = false 
} 

は、私は完全に何!手段を理解!!options.deephereこの構文を見ましたが、なぜ誰もが、それはあなたが再びtrue与えるため!!trueを使用したいと思います。誰も使ってみませんか? JavaScriptで?私はvue.jsウォッチャーを理解しようとしたが

おかげ

+2

はい '!! true'は' true'ですが、 '!! 1'と' !! "hello world" 'です。 – Pointy

答えて

5

変数がブール値である場合、それはブール値に変換され、!!は何の効果もありませんが、変数が数値または別の型である場合。

!!false === false 
!!true === true 
!!0  === false 
!!1  === true 
!!x  === Boolean(x) 
3

!!は、JavaScriptで強制的にブール変換を行う試みです。同じ結果がありますBoolean(value)

関連する問題