Bedingter Ausdruck mit vorangestelltem Tilde-Operator
In JavaScript kann ein Tilde-Operator (~) einem Ausdruck vorangestellt werden, um eine bitweise Negation durchzuführen. Bei der Arbeit mit bedingten Ausdrücken kann dieser Operator eine bestimmte Verwendung haben.
Beispielcode:
var attr = ~'input,textarea'.indexOf( target.tagName.toLowerCase() ) ? 'value' : 'innerHTML'
Erklärung:
Die Funktion indexOf() gibt -1 zurück, wenn der Zielwert nicht gefunden wird. Indem wir diesen Wert mit dem ~-Operator negieren, wandeln wir ihn bei Übereinstimmungen effektiv in wahr (jeden Wert ungleich Null) und bei Nichtübereinstimmungen in falsch (-1) um.
Bitweise Operation:
In JavaScript werden Zahlen intern als 32-Bit-Ganzzahlen dargestellt. Der ~-Operator dreht alle Bits in seinem Operanden um und invertiert sie effektiv.
Zum Beispiel, wenn der Wert von 'input,textarea'.indexOf( target.tagName.toLowerCase() ) 1 ist (was das Zeichen darstellt 'i'), seine binäre Darstellung wäre:
0000 0000 0000 0000 0000 0000 0000 0001
Durch die Anwendung des ~-Operators werden alle Bits umgedreht, was zur Folge hat in:
1111 1111 1111 1111 1111 1111 1111 1110
Der resultierende Wert ist -2 in der Zweierkomplementdarstellung.
Bedingtes Ergebnis:
Im bedingten Ausdruck der Wert von ~'input,textarea'.indexOf( target.tagName.toLowerCase() ) wird ausgewertet, um zu bestimmen, ob 'value' oder zugewiesen werden soll 'innerHTML' zur attr-Variablen hinzufügen. Wenn das Ziel gefunden wird, wird der Ausdruck als wahr ausgewertet, was dazu führt, dass attr „Wert“ zugewiesen wird. Andernfalls, wenn das Ziel nicht gefunden wird, wird der Ausdruck als falsch ausgewertet, was dazu führt, dass „innerHTML“ attr.
zugewiesen wirdDas obige ist der detaillierte Inhalt vonWie wirkt sich der Tilde-Operator auf bedingte Ausdrücke in JavaScript aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!