2017-02-12 87 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 
} 

當我試圖瞭解vue.js看守我看到這句法!!options.deephere我完全理解了!手段,但爲什麼會有人想用!!true,因爲它會給你true一次。爲什麼會有人使用!在JavaScript?

由於

+2

是'!! true'是'true',但是'!! 1'和'!!「hello world''也是如此。 – Pointy

回答

5

如果變量是一個布爾值,然後!!不會有任何效果,但如果該變量是一個數字或其它類型的,那麼它將被轉換成布爾。

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

!!是企圖使強制在JavaScript中布爾值。同樣的結果將與Boolean(value)

相關問題