Erklären Sie die unären Operatoren +var und -var in Javascript
Lesezeit: 4 Minuten
fakeguybrushthreepwood
Ich versuche, unäre Operatoren in Javascript zu verstehen, ich habe diese Anleitung hier gefunden http://wiki.answers.com/Q/What_are_unary_operators_in_javascript Das meiste davon macht Sinn, aber was ich nicht verstehe, ist, wie die folgenden Beispiele in einem tatsächlichen Codebeispiel verwendet werden würden:
+a;
-a;
Nach meinem Verständnis ist die +a; soll die Variable zum positiven Wert von a und the machen -ein; soll die Variable zum negativen Wert von a machen. Ich habe eine Reihe von Beispielen ausprobiert, z.
a = -10;
a = +a;
document.writeln(a);
Und die Ausgabe ist immer noch -10;
Ich habe auch versucht:
a = false;
a = +a;
document.writeln(a);
Und die Ausgabe ist 0;
Was ist ein praktisches Codebeispiel für diese unären Operatoren?
Die Beschreibung finden Sie in der MDN-Dokumentation hilfreich. Da heißt es “Der unäre Negationsoperator steht vor seinem Operanden und negiert ihn.” und “Der unäre Plus-Operator geht seinem Operanden voran und ergibt seinen Operanden, versucht aber, ihn in eine Zahl umzuwandeln, falls dies noch nicht geschehen ist.”
– Felix Klinge
25. August 2012 um 10:20 Uhr
Guffa
Der + -Operator ändert das Vorzeichen des Werts nicht, und der - Operator ändert das Vorzeichen. Das Ergebnis beider Operatoren hängt vom Vorzeichen des ursprünglichen Werts ab, keiner der Operatoren macht den Wert unabhängig vom ursprünglichen Vorzeichen positiv oder negativ.
var a = 4;
a = -a; // -4
a = +a; // -4
Der abs Funktion tut, was Sie denken, dass die + Betreiber tut; es macht den Wert unabhängig vom ursprünglichen Vorzeichen positiv.
var a =-4;
a = Math.abs(a); // 4
Tun +a ist praktisch dasselbe wie tun a * 1; es konvertiert den Wert in a zu einer Zahl, wenn nötig, aber danach ändert es den Wert nicht.
var a = "5";
a = +a; // 5
Der + Der Operator wird manchmal verwendet, um Zeichenfolgen in Zahlen umzuwandeln, aber Sie haben die parseInt und parseFloat Funktionen, um die Konvertierung auf spezifischere Weise durchzuführen.
var a = "5";
a = parseInt(a, 10); //5
Danke für die Rückmeldung. Ich weiß, ich kann sehen, wie -a verwendet werden würde, aber es tut mir leid, dass es dumm klingt, @Guffa, aber können Sie ein super einfaches Beispiel für +a geben, das im Code verwendet wird? Ich versuche zu visualisieren, wie es in einem realen Beispiel verwendet werden würde.
– fakeguybrushthreepwood
25. August 2012 um 10:40 Uhr
Hmm @guffa, tut mir leid, aber ich kann immer noch nicht sehen, was ein wirklich praktisches Beispiel für +a wäre – zumal Sie das sagen parseInt und parseFloat sind überlegene Möglichkeiten, eine Zeichenfolge in eine Zahl umzuwandeln.
– fakeguybrushthreepwood
25. August 2012 um 11:02 Uhr
@u1sonderzug: Ja, es gibt nicht wirklich viel praktischen Nutzen für die + unary-Operator, aber andere Sprachen im C-Stil haben ihn, also würden sie ihn wohl nicht aus Javascript ausschließen wollen. Ich benutze Javascript seit ungefähr 20 Jahren, und ich kann mich nicht erinnern, dass ich das jemals benutzt habe + unärer Operator.
– Gufa
25. August 2012 um 18:00 Uhr
Ein Beispiel ist, dass sie verwendet werden können, um eine Zeichenfolge in eine Zahl umzuwandeln,
var threeStr="3.0"
var three = +threeStr
console.log(threeStr + 3) // '3.03'
console.log(three + 3) //6
Jetzt bin ich neugierig, warum wir das folgende Verhalten sehen: console.log(threeStr + 3) Gibt es einen Namen für das Hinzufügen einer Zahl zu einer Zeichenfolge?
– fakeguybrushthreepwood
25. August 12 um 10:56 Uhr
Ich möchte dies von einem grundlegenden mathematischen Standpunkt aus erklären:
Die Multiplikationsregeln:
Positive x Positive = Positive: 3 x 2 = 6
Negative x Negative = Positive: (-2) x (-8) = 16
Negative x Positive = Negative: (-3) x 4 = -12
Positive x Negative = Negative: 3 x (-4) = -12
In Anbetracht Ihres Beispiels:
a = -10;
a = +a
document.writeln(a);
+a = +(-10) = Positiv x Negativ = Negativ = -10
a = false;
a = +a;
document.writeln(a);
falsch == 0, +a = +(+0) = Positiv * Positiv = Positiv = 0 (vielleicht ist die Verwendung von wahr ein besseres Beispiel)
a = 1
b = -a
console.log(b)
output
-1
‘+’-Operator in einer Variablen ‘a’ bedeutet einfach: a
‘-‘-Operator in einer Variablen ‘a’ bedeutet einfach: -a
Since, in above example
a=-10;
a= +a; // means a, ie, +(-10) which is -10
but,
a= -a; // means -a, ie, -(-10) which is +10
Rupesh Patel
+a bedeutet a*1 und -a bedeutet a*(-1)
Das ist es!!!!!!
Robin Maben
Versuche dies
false == 0 // returns true
So,
a = false
a = +a //a * 1
console.log(a) // prints 0 as expected
.
5841800cookie-checkErklären Sie die unären Operatoren +var und -var in Javascriptyes
Die Beschreibung finden Sie in der MDN-Dokumentation hilfreich. Da heißt es “Der unäre Negationsoperator steht vor seinem Operanden und negiert ihn.” und “Der unäre Plus-Operator geht seinem Operanden voran und ergibt seinen Operanden, versucht aber, ihn in eine Zahl umzuwandeln, falls dies noch nicht geschehen ist.”
– Felix Klinge
25. August 2012 um 10:20 Uhr