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

Während ich vue.js Watcher zu verstehen versuchte, sah ich diese Syntax !!options.deephere ich total verstehen, was ! Mittel, aber warum sollte jemand !!true verwenden, weil es Sie geben true wieder.Warum sollte jemand !! in Javascript?

Dank

+2

Ja '' true' ist 'true', aber dann ist' '1' und' !! "hallo world" '. – Pointy

Antwort

5

Wenn die Variable ein boolean ist, dann wird !! keine Wirkung haben, aber wenn die Variable eine Zahl oder ein anderer Typ ist, dann wird es zu einem boolean konvertiert werden.

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

!! ist ein Versuch, Zwang in JavaScript Boolean zu machen. Das gleiche Ergebnis wird mit Boolean(value)

Verwandte Themen