Ringkasan
Saya hanya memikirkan tiga metode untuk saat ini. Jika pembaca memikirkan metode bagus lainnya, mereka juga dapat berkomunikasi.
Parseint
Operator Bit
Math.floor Math.Ceil
Keterangan
1. Parseint
1. Contoh
parseInt("13nash");//13parseInt("")// NaNparseInt("0xA") //10(hexadecimal)parseInt("13")//13parseInt("070")//ES3 is 56(octal) ES5 is 70parseInt(070)// Both ES3 and ES5 are 56parseInt(22.5)//222. Aturan Konversi:
(1). Menurut contoh (1), parseint akan diuraikan sampai berhenti saat bukan nomor
(2). Menurut contoh (2), itu adalah nan saat mem -parsing string kosong, bukan 0
(3). Menurut contoh (3), parseint dapat mengubah bilangan heksadesimal menjadi desimal
(4). Menurut contoh (4), Parseint mengabaikan ruang string
3. Kerugian:
(1). Menurut Contoh (5), kita dapat mengetahui bahwa Parseint tidak kompatibel ketika mengonversi array oktal. ES3 akan menganggap 070 sebagai nilai oktal, tetapi ES5 akan menganggap 070 sebagai desimal.
(2). Menurut contoh (6) (7) kita dapat mengetahui bahwa ketika ParseInt dieksekusi, itu pertama -tama akan mengubah parameter menjadi string dan kemudian menjalankannya menjadi integer
4. Penjelasan: Mengapa (5) (6) Eksekusi mengubah 070 menjadi bilangan bulat, tetapi hasilnya berbeda? Ini juga merupakan poin kedua dalam cara menyelesaikan kekurangan.
Karena dalam membaca dokumentasi resmi yang saya lihat jika string bukan string, maka itu dikonversi menjadi satu. Bagian ini. Dengan kata lain, jika parameternya bukan string, itu pertama -tama akan mengubahnya menjadi string dan kemudian menjadi bilangan bulat. Misalnya, ParseInt (070) dalam Contoh (6) sebenarnya mengubah 070 menjadi string terlebih dahulu. Anda dapat mencoba 070+ "" atau string (070) dan tahu bahwa 070 akan dikonversi menjadi "56" karena 070 adalah sistem oktal. Maka itu menjadi parseint ("56"), dan bilangan bulat akhir adalah 56. Apakah Anda berada di ES3 atau ES5, itu adalah 56
2. Operator bit
1. Contoh
Console.log (0 | "123.45") // 123Console.log (0 | 123.45) // 123Console.log (0 ^ 123.45) // 123Console.log (~ ~ 123.45) // 123
2. Prinsip: JavaScript tidak memiliki konsep bilangan bulat, dan semua tipe numerik adalah angka floating-point presisi ganda. Saat menggunakan operator bit, pertama -tama akan mengonversi operan menjadi bilangan bulat, yang nyaman untuk operasi. 0 dan nilai lainnya tidak akan mengubah nilai operasi
3. Math.floor dan Math.Ceil
1. Contoh
Console.log (Math.floor (2.3) // 2console.log (Math.floor (-2.3) //-3console.log (Math.ceil (2.3) // 3console.log (Math.Ceil (-2.3) //-2
2. Keduanya tidak cukup: Math.floor mendapatkan bilangan bulat minimum dari angka tersebut; Sementara Math.Ceil mendapatkan bilangan bulat maksimum. Jadi, jika kita membulatkan -2.3, kita akan mendapatkan -2, tetapi jika kita menggunakan Math.floor, kita akan mendapatkan -3. 2.3 Menggunakan Math.Ceil untuk mendapatkan 3, tetapi kami hanya membutuhkan 2.
3. Selesaikan:
// Tentukan fungsi fungsi sendiri getInt (val) {return val> 0? Math.floor (val): Math.ceil (val);}