2017-02-12 88 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)

相关问题