Wie kann ich Folgendes in JavaScript machen?
Verketten Sie "1", "2", "3" in "123"
Wandeln Sie "123" in 123 um
Addiere 123 + 100 = 223
223 in "223" verstecken
Sie möchten sich mit parseInt()
und toString()
vertraut machen.
In Ihrem Toolkit wird es nützlich sein, eine Variable zu suchen, um herauszufinden, 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 in einer Zeichenfolge, wobei das angegebene Trennzeichen zwischen den Elementen steht. In diesem Fall ist das "Trennzeichen" eine leere Zeichenfolge (""
).
parseInt("123")
Vor ECMAScript 5 war es notwendig, die Basis für Basis 10 zu übergeben: parseInt("123", 10)
123 + 100
(223).toString()
(parseInt("1" + "2" + "3") + 100).toString()
oder
(parseInt(["1", "2", "3"].join("")) + 100).toString()
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 werden ständig durch das Typisierungssystem von JavaScript gestellt. Die Leute denken, sie bekommen eine Nummer, wenn sie die Zeichenkette einer Nummer bekommen.
Hier einige Dinge, die Sie möglicherweise sehen werden, um die Art und Weise zu nutzen, wie JavaScript mit Zeichenfolgen und Zahlen umgeht. Ich persönlich wünsche mir, dass JavaScript ein anderes Symbol als + für die Verkettung von Zeichenfolgen verwendet hätte.
Schritt (1) Verketten von "1", "2", "3" in "123"
result = "1" + "2" + "3";
Schritt (2) Wandeln Sie "123" in 123 um
result = +"123";
Schritt (3) Addiere 123 + 100 = 223
result = 123 + 100;
Schritt (4) 223 in "223" umrechnen
result = "" + 223;
Wenn Sie wissen, WARUM diese Probleme auftreten, ist es weniger wahrscheinlich, dass Sie Probleme mit JavaScript-Ausdrücken haben.
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"
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 ergibt "51"
("5" - 0) + 1 ergibt 6
parseInt wird wie scanf falsch dargestellt:
parseInt ("12 Affen", 10) ist eine Zahl mit dem Wert "12" + "12 Affen" ist eine Zahl mit dem Wert "NaN" Number ("12 Affen") ist eine Zahl mit Wert 'NaN'
Im Folgenden finden Sie ein sehr irritierendes Beispiel dafür, wie Sie mit JavaScript Probleme bekommen können:
Wenn Sie nur versuchen, parseInt()
zu verwenden, um eine Zahl zu konvertieren und dann eine weitere Zahl zum Ergebnis hinzuzufügen, werden zwei Zeichenfolgen verkettet.
Sie können das Problem jedoch lösen, indem Sie den Summenausdruck in Klammern setzen wie im folgenden Beispiel gezeigt.
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>
Wir können dies tun, indem wir unary 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;
Am einfachsten ist .__, wenn Sie eine Ganzzahl als Zeichenfolge definieren möchten
var a,b, c;
a = 1;
b = a.toString(); // This will give you string
Nun können wir aus der Variablen b, die vom Typ string ist, die ganze Zahl erhalten
c = b *1; //This will give you integer value of number :-)
Wenn Sie oben nachsehen möchten, ist eine Nummer. Wenn Sie nicht sicher sind, ob b die Ganzzahl __ enthält, können Sie verwenden
if(isNaN(c*1)) {
//NOt a number
}
else //number