// 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 Watcher时,我看到了这种语法!!options.deep
here我完全理解!
的含义,但为什么有人想要使用!!true
因为它会再次给你true
。
由于
答案 0 :(得分:5)
如果变量是布尔值,那么!!
不会产生任何影响,但如果变量是数字或其他类型,那么它将被转换为布尔值。
!!false === false
!!true === true
!!0 === false
!!1 === true
!!x === Boolean(x)
答案 1 :(得分:3)
!!
试图在JavaScript中强制执行布尔值。与Boolean(value)