!
die logische Negation ist oder "nicht" Operator. !!
ist !
zweimal. Es ist eine Möglichkeit, einen "truthy" oder "falsy" -Wert auf true
bzw. false
zu setzen. Bei einem booleschen Wert negiert !
den Wert, d. H. !true
ergibt false
und umgekehrt. Wenn etwas anderes als ein boolescher Wert angegeben wird, wird der Wert zuerst in einen booleschen Wert umgewandelt und dann negiert. Zum Beispiel wird !undefined
zuerst undefined
in false
konvertieren und dann negieren, was true
ergibt. Die Anwendung eines zweiten !
-Operators (!!undefined
) ergibt false
, so dass !!undefined
in false
umwandelt.
In JavaScript sind die Werte false
, null
, undefined
, 0
, -0
, NaN
und ''
(leere Zeichenkette) sind "falsy" Werte. Alle anderen Werte sind "truthy". (1):7.1.2 Hier ist eine Wahrheitstabelle von !
und !!
auf verschiedene Werte:
value | !value | !!value
-----------+--------+-------
false | true | false
true | false | true
null | true | false
undefined | true | false
0 | true | false
-0 | true | false
1 | false | true
-5 | false | true
NaN | true | false
'' | true | false
'hello' | false | true
Hier ist eine Betrogene Frage, mit einer Tonne Antworten auch: https://stackoverflow.com/questions/784929/what-is-the -nicht-operator-in-javascript – wordsforthewise