为什么有人会用!! 在JavaScript中?

rum*_*han 0 javascript ecmascript-6

// 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
}
Run Code Online (Sandbox Code Playgroud)

当我试图理解vue.js Watcher时,我在!!options.deep 这里看到了这种语法,我完全明白了什么!意思,但为什么有人想要使用,!!true因为它会true再次给你.

谢谢

小智 5

如果变量是布尔值,那么!!不会产生任何影响,但如果变量是数字或其他类型,那么它将被转换为布尔值.

!!false === false
!!true  === true
!!0     === false
!!1     === true
!!x     === Boolean(x)
Run Code Online (Sandbox Code Playgroud)