是什么 ”!!” Javascript中的运算符?

可能重复:
是什么 !! 运算符在JavaScript中?

对不起,如果这个是显而易见的,但我不能谷歌它

是什么 ”!!” Javascript中的运算符? 例如

if (!!window.EventSource) { var source = new EventSource('stream.php'); } else { // Result to xhr polling :( }

作者是否使用“!” 两次,即双重否定? 我很困惑,因为这是官方文档


它会将任何内容转换为truefalse

!!0    // => false
!!1    // => true 
!!'a'  // => true
!!''   // => false
!!null // => false

技术上, !! 不是运营商,它只是两个! 运营商彼此相邻。 但双重否定是毫无意义的,除非你正在使用!! 像运营商转换为布尔类型。


在大多数语言中, !! 是双重否定,因为! 是否定。 考虑这个:

# We know that...
!false == true

# And therefore...
!!false == false
!!true == true

它经常被用来检查一个值是否存在并且不是假的,例如:

!!'some string' == true
!!123 == true
!!myVar == true

! 用于将非零/非空值转换为布尔值true,并将零/空值转换为false。

例如,如果a = 4,那么!a = false并且!a =!(!a)= true。

链接地址: http://www.djcxy.com/p/12655.html

上一篇: What is the "!!" operator in Javascript?

下一篇: Javascript ! and !! differences