js中!!的运用

最近在看vue源码。

里面使用Object.defineProperty()中!!吸引眼球

1 export function def (obj: Object, key: string, val: any, enumerable?: boolean) {
2   Object.defineProperty(obj, key, {
3     value: val,
4     enumerable: !!enumerable,
5     writable: true,
6     configurable: true
7   })
8 }

!!常常用来做类型判断,判断值是否为空,undefine一类

!!本身并无特殊,而是两个!!的使用

1、先从一个!来讲,取反

1 !null 为 true
2 
3 !undefined 为 true
4 
5 !'' 为 true
6  
7 !100 为 false
8 
9 !'abc' 为 false

上述情况,但值为null,undefined,‘’ 去反值为true

2、再次取反

!!null 等于false, !!undefind等于false,!!''为false

这种情况就可以做许多处理了

let temp = ''

如 if(!!temp) {

console.log('真值temp')

}

以梦为马
原文地址:https://www.cnblogs.com/lsAxy/p/13388335.html