Javascript String-Operatoren
Wieso kann ich verwenden +=
auf einen string, aber ich kann -=
drauf?
Zum Beispiel...
var test = "Test";
var arr = "⇔"
test += arr;
alert(test); //Shows "Test⇔"
test -= arr;
alert(test); //Shows "NaN"
- Hinweis: ich bin kein Dummkopf, ich weiß, Sie können nicht "subtrahieren" - eine Zeichenfolge. Jemand fragte mich diese und ich war nicht sicher, wie Sie darauf reagieren, so bin ich Entsendung es hier.
- Die
+
- operator ist der operator, wenn einer der Operanden ein string ist. - Nur zwei Operatoren definiert werden, die für Zeichenfolgen:
+
und+=
(developer.mozilla.org/en/...)
Du musst angemeldet sein, um einen Kommentar abzugeben.
Die kurze Antwort ist - es ist nicht definiert, um die Arbeit mit strings.
Längere Antwort: wenn Sie versuchen, die Subtraktion operator auf zwei Saiten, wird es zuerst warf Sie zu zahlen und dann die arithmetische Operationen ausführen.
Wenn Sie versuchen, etwas, das nicht numerisch ist, erhalten Sie ein NaN Fehler Auftritt:
Weil die
+
- operator verkettet Zeichenfolgen, aber die-
Betreiber nur subtrahiert zahlen voneinander.Als die warum-wahrscheinlich, weil es schwierig ist, zu bestimmen, was die Menschen tun wollen, wenn Sie subtrahieren strings voneinander.
Beispiel:
Was sollte dieser tun?
Wie gesagt, die
-=
- operator nicht überladen, um die Arbeit mit Strings, es funktioniert nur mit Zahlen.Wenn Sie versuchen, verwenden Sie es mit Saiten, die Betreiber werden versuchen, Sie zu konvertieren, werden beide Operanden zu
Number
, das ist, warum Sie immerNaN
, weil:Loszuwerden, die
arr
Inhalte auf Ihremtest
string, Sie können ersetzen es:Weil das minus-Zeichen ist kein Gültiger String operator, in der Erwägung, dass das plus-Zeichen ist überladen, um Zahlen (addition operator) und Streicher (Verkettungsoperator).
Welche Ergebnisse konnten Sie hoffen, um aus dieser?
--
. Minus-gleich-=
ist nur ein Komfort-operator, ist eine zusammengesetzte operator analagous zum Ausdrucka = a - b
Allgemein -, Programmier-Sprachen nicht definieren, Subtraktion für Streicher. += ist nicht wirklich zusätzlich in den ersten Platz, es ist die Verkettung.
Da der +(plus-Zeichen) ist auch der operator für die Zeichenfolgenverkettung, während Sie die -(minus-Zeichen) gilt nur für die Subtraktion. Wenn JavaScript anfügen können 2 strings zusammen, es wird sich nicht beschweren, aber wenn Sie versuchen, um zu subtrahieren 2 strings, es macht einfach keinen Sinn.