Wie kann ich in JavaScript Folgendes tun?
Verketten Sie "1", "2", "3" zu "123".
Konvertieren Sie "123" in 123
Addiere 123 + 100 = 223
Verdecken Sie 223 in "223"
Wie kann ich in JavaScript Folgendes tun?
Verketten Sie "1", "2", "3" zu "123".
Konvertieren Sie "123" in 123
Addiere 123 + 100 = 223
Verdecken Sie 223 in "223"
Antworten:
Sie möchten sich mit parseInt()
und vertraut machen toString()
.
In Ihrem Toolkit können Sie anhand einer Variablen herausfinden, um welchen Typ es sich handelt typeof
:
<script type="text/javascript">
/**
* print out the value and the type of the variable passed in
*/
function printWithType(val) {
document.write('<pre>');
document.write(val);
document.write(' ');
document.writeln(typeof val);
document.write('</pre>');
}
var a = "1", b = "2", c = "3", result;
// Step (1) Concatenate "1", "2", "3" into "123"
// - concatenation operator is just "+", as long
// as all the items are strings, this works
result = a + b + c;
printWithType(result); //123 string
// - If they were not strings you could do
result = a.toString() + b.toString() + c.toString();
printWithType(result); // 123 string
// Step (2) Convert "123" into 123
result = parseInt(result,10);
printWithType(result); // 123 number
// Step (3) Add 123 + 100 = 223
result = result + 100;
printWithType(result); // 223 number
// Step (4) Convert 223 into "223"
result = result.toString(); //
printWithType(result); // 223 string
// If you concatenate a number with a
// blank string, you get a string
result = result + "";
printWithType(result); //223 string
</script>
"1" + "2" + "3"
oder
["1", "2", "3"].join("")
Die Join- Methode verkettet die Elemente eines Arrays zu einer Zeichenfolge und setzt das angegebene Trennzeichen zwischen die Elemente. In diesem Fall ist das "Trennzeichen" eine leere Zeichenfolge ( ""
).
parseInt("123")
Vor ECMAScript 5 musste der Radix für Basis 10 übergeben werden:parseInt("123", 10)
123 + 100
(223).toString()
(parseInt("1" + "2" + "3") + 100).toString()
oder
(parseInt(["1", "2", "3"].join("")) + 100).toString()
parseInt
Funktion angeben .
r = ("1"+"2"+"3") // step1 | build string ==> "123"
r = +r // step2 | to number ==> 123
r = r+100 // step3 | +100 ==> 223
r = ""+r // step4 | to string ==> "223"
//in one line
r = ""+(+("1"+"2"+"3")+100);
Diese Fragen tauchen aufgrund des JavaScript-Typisierungssystems ständig auf. Die Leute denken, sie bekommen eine Nummer, wenn sie die Zeichenfolge einer Nummer bekommen.
Hier sind einige Dinge, die möglicherweise den Umgang von JavaScript mit Zeichenfolgen und Zahlen nutzen. Ich persönlich wünschte, JavaScript hätte ein anderes Symbol als + für die Verkettung von Zeichenfolgen verwendet.
Schritt (1) Verketten Sie "1", "2", "3" zu "123".
result = "1" + "2" + "3";
Schritt (2) Konvertieren Sie "123" in 123
result = +"123";
Schritt (3) Addiere 123 + 100 = 223
result = 123 + 100;
Schritt (4) Wandle 223 in "223" um
result = "" + 223;
Wenn Sie wissen, WARUM diese funktionieren, ist es weniger wahrscheinlich, dass Sie Probleme mit JavaScript-Ausdrücken bekommen.
Sie können es so machen:
// step 1
var one = "1" + "2" + "3"; // string value "123"
// step 2
var two = parseInt(one); // integer value 123
// step 3
var three = 123 + 100; // integer value 223
// step 4
var four = three.toString(); // string value "223"
0
, als Oktalzahlen (Basis-8) angezeigt.
0
und dann enthalten 8
oder 9
fehlschlagen, zu einer Rückgabe von 0 führen. ZB ,, parseInt('034') = 28
und parseInt('09') = 0
.
Um eine Zeichenfolge in eine Zahl umzuwandeln, subtrahieren Sie 0. Um eine Zahl in eine Zeichenfolge umzuwandeln, fügen Sie "" (die leere Zeichenfolge) hinzu.
5 + 1 gibt Ihnen 6
(5 + "") + 1 gibt Ihnen "51"
("5" - 0) + 1 ergibt 6
Im Folgenden finden Sie ein sehr irritierendes Beispiel dafür, wie JavaScript Sie in Schwierigkeiten bringen kann:
Wenn Sie nur versuchen, parseInt()
eine Konvertierung in eine Zahl vorzunehmen und dann dem Ergebnis eine weitere Zahl hinzufügen, werden zwei Zeichenfolgen verkettet.
Sie können das Problem jedoch lösen, indem Sie den Summenausdruck wie im folgenden Beispiel in Klammern setzen .
Ergebnis: Ihre Alterssumme beträgt: 98; Ihre Alterssumme beträgt NICHT: 5048
<!DOCTYPE html>
<html>
<body>
<p id="demo"></p>
<script>
function Person(first, last, age, eye) {
this.firstName = first;
this.lastName = last;
this.age = age;
this.eyeColor = eye;
}
var myFather = new Person("John", "Doe", "50", "blue");
var myMother = new Person("Sally", "Rally", 48, "green");
document.getElementById("demo").innerHTML = "Their age sum is: "+
(parseInt(myFather.age)+myMother.age)+"; Their age sum is NOT: " +
parseInt(myFather.age)+myMother.age;
</script>
</body>
</html>
Am einfachsten ist es, wenn Sie eine Ganzzahl zu einer Zeichenfolge machen möchten
var a,b, c;
a = 1;
b = a.toString(); // This will give you string
Aus der Variablen b vom Typ string können wir nun die Ganzzahl erhalten
c = b *1; //This will give you integer value of number :-)
Wenn Sie oben überprüfen möchten, ist eine Nummer. Wenn Sie nicht sicher sind, ob b eine Ganzzahl enthält, können Sie verwenden
if(isNaN(c*1)) {
//NOt a number
}
else //number
Wir können dies tun, indem wir den unären Plus-Operator verwenden , um sie zuerst in Zahlen umzuwandeln und einfach hinzuzufügen. siehe unten:-
var a = "4";
var b = "7";
var sum = +a + +b;