学习一下 !和!! 之间的区别;
先看个简答的示例:
console.log(!0); //true
console.log(!false); //true
console.log(!''); //true
console.log(!' '); //false
console.log(!'abc'); //false
console.log(!{}); //false
console.log(typeof !0); //boolean
console.log(typeof !'abc'); //boolean
console.log(typeof !true); //boolean
console.log(typeof !{}); //boolean
!:逻辑非
通过示例可以看出,当给变量前面加上!
之后,通过typeof可以知道变量类型变成了boolean
。
这里说变量类型感觉有点不妥,不过也不知道怎么描述.
其中
- 0
- '' / ""
- false
- null
- undefined
- NaN
逻辑非之后的值为true
。
!!
它的作用是用来:判断在其后面的变量是 true or false
如: !!'abc'
- 第一步: !'abc' 返回的值是false,是boolean类型;
- 第二部: !false 返回的值是true,是boolean类型;
- 结果:true,可以判断 'abc'是有值的,不是上面的那几种情况;
结论:!!可以快速得出,当前的变量的值是否是真的值(将值类型转换成true)。
网友评论