Bagaimana saya bisa melakukan hal berikut di JavaScript?
Gabungkan "1", "2", "3" menjadi "123"
Ubah "123" menjadi 123
Tambahkan 123 + 100 = 223
Ubah 223 menjadi "223"
javascript
string
numbers
pengguna366312
sumber
sumber
Jawaban:
Anda ingin mengenal
parseInt()
dantoString()
.Dan berguna dalam toolkit Anda adalah melihat variabel untuk mengetahui jenisnya—
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>
sumber
Langkah (1) Gabungkan "1", "2", "3" menjadi "123"
"1" + "2" + "3"
atau
["1", "2", "3"].join("")
The bergabung metode merangkai item dari sebuah array ke dalam string, menempatkan pembatas tertentu antara item. Dalam kasus ini, "pembatas" adalah string kosong (
""
).Langkah (2) Ubah "123" menjadi 123
parseInt("123")
Sebelum ECMAScript 5 , perlu melewati radix untuk basis 10:
parseInt("123", 10)
Langkah (3) Tambahkan 123 + 100 = 223
123 + 100
Langkah (4) Terselubung 223 menjadi "223"
(223).toString()
Put It All Togther
(parseInt("1" + "2" + "3") + 100).toString()
atau
(parseInt(["1", "2", "3"].join("")) + 100).toString()
sumber
parseInt
fungsi tersebut .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);
sumber
Pertanyaan-pertanyaan ini muncul setiap saat karena sistem pengetikan JavaScript. Orang mengira mereka mendapatkan nomor ketika mereka mendapatkan rangkaian angka.
Berikut beberapa hal yang mungkin Anda lihat yang memanfaatkan cara JavaScript menangani string dan angka. Secara pribadi, saya berharap JavaScript telah menggunakan beberapa simbol selain + untuk penggabungan string.
Langkah (1) Gabungkan "1", "2", "3" menjadi "123"
result = "1" + "2" + "3";
Langkah (2) Ubah "123" menjadi 123
result = +"123";
Langkah (3) Tambahkan 123 + 100 = 223
result = 123 + 100;
Langkah (4) Ubah 223 menjadi "223"
result = "" + 223;
Jika Anda tahu MENGAPA ini berfungsi, Anda cenderung tidak mengalami masalah dengan ekspresi JavaScript.
sumber
Anda bisa melakukannya seperti ini:
// 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"
sumber
0
akan terlihat sebagai angka oktal (basis 8) .0
dan kemudian mengandung8
atau9
akan gagal, mengarah ke pengembalian 0. MisalnyaparseInt('034') = 28
,, danparseInt('09') = 0
.Untuk mengubah string menjadi angka, kurangi 0. Untuk mengubah angka menjadi string, tambahkan "" (string kosong).
5 + 1 akan memberi Anda 6
(5 + "") + 1 akan memberi Anda "51"
("5" - 0) +1 akan menghasilkan 6
sumber
parseInt salah fitur seperti scanf:
sumber
Di bawah ini adalah contoh yang sangat menjengkelkan tentang bagaimana JavaScript dapat membuat Anda mendapat masalah:
Jika Anda hanya mencoba menggunakan
parseInt()
to convert to number dan kemudian menambahkan angka lain ke hasilnya, itu akan menggabungkan dua string.Namun, Anda bisa menyelesaikan soal dengan menempatkan ekspresi jumlah dalam tanda kurung seperti yang ditunjukkan pada contoh di bawah ini.
Hasil: Jumlah usia mereka: 98; Jumlah usia mereka BUKAN: 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>
sumber
Paling sederhana adalah ketika Anda ingin membuat integer menjadi string
var a,b, c; a = 1; b = a.toString(); // This will give you string
Sekarang, dari variabel b yang bertipe string kita bisa mendapatkan integer
c = b *1; //This will give you integer value of number :-)
Jika mau cek diatas adalah angka. Jika Anda tidak yakin apakah b berisi integer maka Anda dapat menggunakan
if(isNaN(c*1)) { //NOt a number } else //number
sumber
Kita dapat melakukan ini dengan menggunakan operator unary plus untuk mengonversinya menjadi angka terlebih dahulu dan cukup menambahkan. Lihat di bawah:-
var a = "4"; var b = "7"; var sum = +a + +b;
sumber