Interpretation von Javascript-Code - Tilde-Symbol vor ternären IF-Operator

8

Ich habe den Code von respons.js in express geprüft und bin auf diesen Code gestoßen:

%Vor%

Meine Frage ist, was macht der Operator ~ vor der type.indexOf() -Anweisung? Was ist sein Zweck und wann wird es verwendet?

    
callmekatootie 30.05.2013, 20:22
quelle

2 Antworten

9

Es ist ein bitweise NICHT , obwohl seine Verwendung hier ziemlich undurchsichtig ist.

Es wird verwendet, um ein -1 Ergebnis von indexOf (dh String nicht gefunden) in ein 0 zu transformieren, was ein falscher Wert ist (da ~-1 == 0 und 0 in a falsch ist Boolescher Kontext) und lässt alle anderen Werte truthy bleiben.

Es hätte deutlicher als (type.indexOf('/') != -1) ? ... : ...

geschrieben werden können

Im Klartext heißt es: "Behandle ein -1 result (dh wenn / nicht gefunden wurde) von indexOf als false ; andernfalls behandle das Ergebnis als true ".

    
apsillers 30.05.2013, 20:28
quelle
0

Die Tilde ist der bitweise NOT-Operator, genauso wie ! der logische NOT-Operator ist. Vielleicht möchten Sie sich die Dokumentation des Operators im Mozilla Developer Network für seine volle Nutzung und Bedeutung.

    
beakr 30.05.2013 20:27
quelle

Tags und Links