Jak mogę wykonać następujące czynności w JavaScript?
Połącz „1”, „2”, „3” w „123”
Zamień „123” na 123
Dodaj 123 + 100 = 223
Ukryj 223 w „223”
javascript
string
numbers
user366312
źródło
źródło
Odpowiedzi:
Chcesz się zapoznać z
parseInt()
itoString()
.Przydatne w Twoim zestawie narzędzi będzie przyjrzenie się zmiennej, aby dowiedzieć się, jakiego typu jest–
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>
źródło
Krok (1) Łączenie „1”, „2”, „3” z „123”
"1" + "2" + "3"
lub
["1", "2", "3"].join("")
Metoda join łączy elementy tablicy w ciąg, umieszczając określony separator między elementami. W tym przypadku „separator” jest pustym ciągiem znaków (
""
).Krok (2) Zamień "123" na 123
parseInt("123")
Przed ECMAScript 5 konieczne było przekazanie podstawy dla podstawy 10:
parseInt("123", 10)
Krok (3) Dodaj 123 + 100 = 223
123 + 100
Krok (4) Ukryj 223 w „223”
(223).toString()
Put It All Togther
(parseInt("1" + "2" + "3") + 100).toString()
lub
(parseInt(["1", "2", "3"].join("")) + 100).toString()
źródło
parseInt
funkcji .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);
źródło
Te pytania pojawiają się cały czas z powodu systemu pisania w JavaScript. Ludzie myślą, że dostają liczbę, kiedy otrzymują ciąg liczb.
Oto kilka rzeczy, które możesz zobaczyć, a które wykorzystują sposób, w jaki JavaScript radzi sobie z łańcuchami i liczbami. Osobiście żałuję, że JavaScript nie użył innego symbolu niż + do łączenia ciągów.
Krok (1) Łączenie „1”, „2”, „3” z „123”
result = "1" + "2" + "3";
Krok (2) Zamień "123" na 123
result = +"123";
Krok (3) Dodaj 123 + 100 = 223
result = 123 + 100;
Krok (4) Zamień 223 na „223”
result = "" + 223;
Jeśli wiesz, DLACZEGO to działa, rzadziej będziesz mieć problemy z wyrażeniami JavaScript.
źródło
Możesz to zrobić w ten sposób:
// 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"
źródło
0
będą widoczne jako liczby ósemkowe (podstawa-8) .0
, a następnie zawierający8
lub9
nie powiedzie się, co prowadzi do powrotu 0. EG,parseInt('034') = 28
iparseInt('09') = 0
.Aby zamienić ciąg na liczbę, odejmij 0. Aby przekształcić liczbę w ciąg, dodaj „” (pusty ciąg).
5 + 1 daje 6
(5 + "") + 1 daje "51"
("5" - 0) + 1 daje 6
źródło
parseInt jest niewłaściwy jak scanf:
źródło
Poniżej znajduje się bardzo irytujący przykład tego, jak JavaScript może wpędzić Cię w kłopoty:
Jeśli spróbujesz po prostu
parseInt()
przekonwertować na liczbę, a następnie dodasz kolejną liczbę do wyniku, połączy dwa ciągi.Możesz jednak rozwiązać problem, umieszczając wyrażenie sumujące w nawiasach, jak pokazano w poniższym przykładzie.
Wynik: ich suma wieku to: 98 lat; Ich suma wieku NIE wynosi: 5048 lat
<!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>
źródło
Najprościej jest, gdy chcesz, aby liczba całkowita była napisem
var a,b, c; a = 1; b = a.toString(); // This will give you string
Teraz ze zmiennej b, która jest typu string, możemy pobrać liczbę całkowitą
c = b *1; //This will give you integer value of number :-)
Jeśli chcesz sprawdzić powyżej to liczba. Jeśli nie jesteś pewien, czy b zawiera liczbę całkowitą, możesz użyć
if(isNaN(c*1)) { //NOt a number } else //number
źródło
Możemy to zrobić, używając jednoargumentowego operatora plus, aby najpierw przekonwertować je na liczby i po prostu dodać. patrz poniżej: -
var a = "4"; var b = "7"; var sum = +a + +b;
źródło