Zu meinem Verständnis führt der unäre Operator !
implizite Typumwandlungen durch und wird manchmal für die Typumwandlung verwendet.
Im Grunde konvertiert der Operator !
seinen Operanden in einen booleschen Wert und negiert ihn.
Jetzt:
%Vor%Tatsächlich:
%Vor% Ich gehe also davon aus, dass sowohl !!x
als auch Boolean(x)
die gleiche Aktion ausführen.
Ich würde gerne wissen:
Ihre Annahmen sind richtig. Genau so funktioniert es und ich bin es nicht bewusst, dass bei der Verwendung besondere Vorsicht geboten ist.
Wenn wir von guter Praxis sprechen, werden Sie wahrscheinlich so viele Leute haben
unterstützt die schnelle 'n "dreckige" !!
-Weg wie es gibt, wer würde
befürworte die Verwendung der Funktion Boolean
; Aus meiner Erfahrung scheint dies jedoch der Fall zu sein
!!
ist viel häufiger im Bibliothekscode (sieh dir die jQuery-Quelle an,
Sie haben eine Menge Dinge wie return !!locked;
). IMHO ist es ausreichend erkennbar, ohne die Lesbarkeit des Codes zu beeinträchtigen.
Dies ist in ECMAScript schon lange Standard; Ich kann nicht für alte Versionen von Internet Explorer sprechen (vor IE 8), aber Sie können ziemlich sicher sein, dass sich alle modernen Browser in diesem Fall gleich verhalten.
Nützliche Hinweise im Standard:
Kennen Sie irgendwelche Vorbehalte, die meine Annahmen falsch machen?
Ihre Annahme ist richtig. Sowohl Boolean
function als auch !!
haben dieselbe Funktionalität.
Welcher Weg sollte im Hinblick auf eine gute Praxis bevorzugt werden?
Ich empfehle, den unären Operator zweimal zu verwenden, weil er mindestens zweimal schneller ist als die Verwendung von Boolean mit 100.000 Iterationen
JS Geigenverbindung: Ссылка
Kennen Sie Unterschiede zwischen verschiedenen ECMAScript? Versionen oder Browser-Anbieter?
Boolesche und unäre Operatoren sind aus JavaScript 1.0 implementiert und sollten daher in allen Browsern verfügbar sein, die JavaScript unterstützen.
Tags und Links javascript