mata utama
- Semua nombor dalam JavaScript diwakili menggunakan jenis data nombor, termasuk bilangan bulat, nombor sebenar, nombor heksadesimal, dan nombor notasi saintifik. Walau bagaimanapun, JavaScript secara dalaman mewakili semua nombor sebagai nombor titik terapung IEEE 754, yang bermaksud bahawa matematik JavaScript tidak 100% tepat.
- JavaScript mentakrifkan nombor yang dipanggil Not-A-Number (NAN) untuk mewakili bukan digit sebagai nombor. NAN adalah satu -satunya nilai angka dalam JavaScript yang tidak sama dengan dirinya sendiri, dan boleh diuji menggunakan fungsi ISNAN ().
- JavaScript mempunyai beberapa ciri, seperti sifar yang ditandatangani, menghasilkan sifar positif (0) dan sifar negatif (-0), yang dianggap nilai yang berbeza, tetapi pengendali perbandingan JavaScript tidak dapat membezakannya. Dalam JavaScript, membahagikan dengan sifar menghasilkan tak terhingga, dan membahagikan oleh sifar negatif menghasilkan -infinity.
- Jenis data adalah bahagian penting dari setiap bahasa pengaturcaraan, dan nombor mungkin jenis data yang paling penting. Lagipun, komputer benar -benar hanya kalkulator mahal. Seperti mana -mana bahasa pengaturcaraan yang berharga, JavaScript menyokong data berangka. Tetapi, seperti banyak aspek lain dari JavaScript, terdapat beberapa nuansa dalam nombor yang boleh menyebabkan anda masalah jika anda tidak berhati -hati. Artikel ini membincangkan data berangka dan beberapa ciri -cirinya.
.
Jenis nomborDalam JavaScript, semua nombor diwakili oleh jenis data nombor. Ini termasuk bilangan bulat, nombor sebenar, nombor heksadesimal dan nombor yang diwakili oleh notasi saintifik. Contoh berikut mengesahkan ini dengan menggunakan pengendali jenis ke pelbagai nombor. Dalam contoh ini, setiap aplikasi TypeOf mengembalikan nombor.
Dalam contoh terdahulu, nombor dalam pelbagai format. Walau bagaimanapun, secara dalaman, semua nombor JavaScript sebenarnya diwakili sebagai nombor titik terapung IEEE 754. Ini penting kerana ia bermakna bahawa JavaScript tidak mempunyai konsep integer, walaupun bahasa mempunyai fungsi parseInt (). Ini juga bermakna bahawa operasi matematik JavaScript tidak 100% tepat. Sebagai contoh, pertimbangkan ungkapan berikut.
typeof(100); typeof(3.14); typeof(0xDEADBEEF); typeof(7.89e2);
Jika anda tidak biasa dengan nombor titik terapung, anda pasti akan mengharapkan ungkapan ini untuk menilai benar. Lagipun, 0.1 0.2 sama dengan 0.3. Walau bagaimanapun, disebabkan bagaimana nombor titik terapung berfungsi, jumlahnya sebenarnya 0.300000000000000000000000004. Perbezaannya kecil, tetapi ini cukup untuk menyebabkan keseluruhan ekspresi menilai palsu.
(0.1 + 0.2) === 0.3
sifar positif dan sifar negatif
Satu lagi ciri standard IEEE 754 ialah sifar yang ditandatangani. Ini menghasilkan dua sifar - sifar positif, 0, dan sifar negatif, -0. Ini mungkin kelihatan pelik, tetapi keseronokan baru sahaja bermula. Jelas sekali, kedua -dua ini adalah nilai yang berbeza, jika tidak, hanya satu sifar. Walau bagaimanapun, jika anda menunjukkan salah satu daripada kedua -dua sifar ini, simbol akan dipadamkan. Sebagai contoh, kod berikut cuba memaparkan kedua -dua nilai sifar ini bersebelahan.
typeof(100); typeof(3.14); typeof(0xDEADBEEF); typeof(7.89e2);
lebih teruk, pengendali perbandingan JavaScript juga nampaknya tidak dapat membezakan antara kedua -dua nilai, seperti yang ditunjukkan dalam contoh berikut.
(0.1 + 0.2) === 0.3
Terdapat penyelesaian yang agak mudah untuk masalah ini. Dalam JavaScript, pembahagian dengan sifar menghasilkan tak terhingga. Begitu juga, membahagikan dengan sifar negatif akan menghasilkan -infinity. Oleh itu, untuk menentukan sama ada nombor adalah sama dengan -0, kita perlu menyemak sama ada sifar, kemudian gunakannya sebagai penyebut untuk pembahagian dan periksa -infiniti seperti yang ditunjukkan di bawah.
alert((+0) + " " + (-0)); // 显示 0 0
not-a-number (nan)
JavaScript sebenarnya mentakrifkan nombor yang dipanggil Not-A-Number (NAN). NAN adalah nilai palsu yang digunakan untuk mewakili nombor sebagai nombor. Nilai ini menarik kerana namanya sendiri mengetepikan kemungkinan bahawa ia adalah nombor, tetapi Typeof (NAN) adalah nombor. NAN juga menarik kerana ia adalah satu -satunya nilai dalam JavaScript yang tidak sama. Sebagai contoh, kod berikut akan kembali palsu.
alert((+0 === -0)); // 显示 true alert((-0 === +0)); // 显示 true
Anda boleh menguji NAN menggunakan fungsi ISNAN () dan bukannya menggunakan pengendali perbandingan seperti yang ditunjukkan di bawah.
function isNegativeZero(x) { return (x === 0 && (1/x) === -Infinity); }Walau bagaimanapun, isnan () juga menarik kerana ia boleh mengelirukan. Jika anda lulus dalam nilai yang boleh dibuang ke nombor, Isnan () akan kembali palsu. Dalam contoh berikut, Isnan () dipanggil dengan beberapa nilai yang jelas tidak angka. Walau bagaimanapun, setiap panggilan kembali palsu.
alert((NaN === NaN)); // 显示 falseCara yang lebih baik untuk memeriksa NAN adalah untuk memanfaatkan hakikat bahawa ia tidak sama. Ujian fungsi berikut nan menggunakan ketidaksamaan yang ketat. Fungsi ini mengembalikan hanya untuk nilai nan.
isNaN(1); // 返回 false isNaN(NaN); // 返回 true
Momen -momen yang menyeronokkan lain
Terdapat beberapa situasi lain yang boleh menyebabkan masalah dengan nombor. Pertama, anda harus menyedari pelayar lama, yang membolehkan sifat global seperti Infinity, Nan, dan Undefined untuk ditakrifkan semula sebagai nilai baru. Sebagai contoh, jika anda menggunakan NAN dengan kerap, kod berikut boleh menyebabkan banyak masalah. Nasib baik, pelayar moden mengabaikan tugasan kepada sifat -sifat yang disebutkan di atas. Mod yang ketat melangkah lebih jauh, menukar kegagalan senyap ini ke dalam kesilapan.
isNaN(true); isNaN(false); isNaN(""); isNaN(null); // 全部返回 falseSatu lagi kesilapan diagnostik yang menarik datang dari menambah nombor dan rentetan. Contohnya ditunjukkan di bawah. Dalam kes ini, concatenation rentetan mengatasi penambahan. Ini menyebabkan Foo ditukar kepada rentetan "100". Hasil akhirnya adalah rentetan "1001", yang sangat berbeza dari nilai yang diharapkan dari 101. Kesalahan jenis ini lebih biasa daripada yang anda fikirkan dan sering berlaku apabila membaca input pengguna.
function isNotANumber(x) { return x !== x; }
Kesimpulan
Artikel ini membincangkan beberapa ciri nombor dalam JavaScript. Mudah -mudahan anda sekarang memahami bagaimana masalah ini timbul dan bagaimana untuk mengelakkannya. Dan, sementara anda mungkin tidak sering menghadapi situasi seperti sifar negatif, sekurang -kurangnya sekarang anda sudah bersedia.
soalan yang sering ditanya mengenai nombor JavaScript (FAQ)
Apa yang berlaku apabila membahagikan nombor dengan sifar di JavaScript?
Dalam JavaScript, apabila anda membahagikan nombor dengan sifar, hasilnya adalah tak terhingga. Ini kerana mana -mana nombor yang dibahagikan dengan sifar secara matematik tidak ditentukan, tetapi JavaScript mewakili ia sebagai tak terhingga untuk tujuan praktikal. Walau bagaimanapun, jika anda membahagikan sifar sebanyak sifar, hasilnya adalah nan (bukan nombor), kerana operasi ini tidak pasti dalam matematik.
Bagaimana menangani BIGINT dibahagikan dengan sifar?
BigInt adalah objek terbina dalam dalam JavaScript yang menyediakan cara untuk mewakili bilangan bulat yang lebih besar daripada 2^53-1, bilangan terbesar yang JavaScript boleh mewakili dengan menggunakan nombor primitif. Jika anda cuba membahagikan BIGINT oleh sifar, JavaScript akan membuang rangeError yang menunjukkan bahawa operasi itu tidak sah.
Bagaimana untuk mencegah atau mengendalikan pembahagian oleh ralat sifar dalam JavaScript?
Anda boleh menggunakan pernyataan bersyarat dalam JavaScript untuk mencegah atau memproses pembahagian dengan kesilapan sifar dengan memeriksa sama ada penyebutnya adalah sifar sebelum melakukan operasi pembahagian. Jika penyebutnya adalah sifar, anda boleh memutuskan cara mengendalikannya, sebagai contoh, mengembalikan nilai tertentu atau memaparkan mesej ralat.
Kenapa 0 dibahagikan dengan 0 dalam javascript nan?
Dalam matematik, ungkapan 0/0 tidak ditentukan kerana ia tidak mempunyai nilai yang jelas dan jelas. Dalam JavaScript, operasi matematik yang tidak ditentukan menghasilkan NAN (bukan nombor). Oleh itu, apabila anda membahagikan sifar dengan sifar dalam javascript, hasilnya adalah nan.
Apakah perbezaan antara NAN dan Infinity dalam JavaScript?
Dalam JavaScript, Nan (bukan nombor) dan Infinity adalah nilai khas. NAN mewakili nilai yang bukan nombor undang -undang, biasanya disebabkan oleh operasi matematik yang tidak ditentukan atau tidak pasti. Infinity, sebaliknya, mewakili nombor yang lebih besar daripada nombor yang mungkin, biasanya disebabkan oleh membahagikan nombor dengan sifar.
Bagaimana untuk memeriksa sama ada hasil dalam JavaScript adalah nan?
Anda boleh menggunakan fungsi ISNAN () dalam JavaScript untuk memeriksa sama ada hasilnya adalah NAN. Jika parameter adalah nan, fungsi ini kembali benar, jika tidak palsu.
Bagaimana untuk memeriksa sama ada hasil dalam JavaScript adalah tak terhingga?
Anda boleh menggunakan fungsi ISFinite () dalam JavaScript untuk memeriksa sama ada hasilnya adalah nombor terhingga. Jika parameter adalah positif atau negatif infiniti, fungsi ini mengembalikan palsu, jika tidak benar.
Apakah maksud nombor primitif dalam JavaScript?
Nombor primitif dalam JavaScript digunakan untuk mewakili nilai angka. Ia boleh mewakili nilai integer dan nombor titik terapung. Walau bagaimanapun, ia hanya boleh mewakili nombor sehingga 2^53-1.
Bagaimana menangani jumlah besar dalam JavaScript?
Untuk mengendalikan bilangan besar yang melebihi had integer selamat JavaScript, anda boleh menggunakan objek BIGINT. BigInt membolehkan anda mewakili bilangan bulat yang lebih besar daripada 2^53-1.
Apa itu RangeError dalam JavaScript?
JavaScript melemparkan RangeError apabila nilai tidak berada dalam julat yang diharapkan. Sebagai contoh, cuba membahagikan BIGINT oleh hasil sifar dalam rangeError.
Atas ialah kandungan terperinci Seronok dengan nombor JavaScript. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Penjelasan terperinci mengenai kaedah penggantian rentetan javascript dan Soalan Lazim Artikel ini akan meneroka dua cara untuk menggantikan watak rentetan dalam JavaScript: Kod JavaScript dalaman dan HTML dalaman untuk laman web. Ganti rentetan di dalam kod JavaScript Cara yang paling langsung ialah menggunakan kaedah pengganti (): str = str.replace ("cari", "ganti"); Kaedah ini hanya menggantikan perlawanan pertama. Untuk menggantikan semua perlawanan, gunakan ungkapan biasa dan tambahkan bendera global g: str = str.replace (/fi

Jadi di sini anda, bersedia untuk mempelajari semua perkara ini yang dipanggil Ajax. Tetapi, apa sebenarnya? Istilah Ajax merujuk kepada kumpulan teknologi longgar yang digunakan untuk membuat kandungan web yang dinamik dan interaktif. Istilah Ajax, yang asalnya dicipta oleh Jesse J

Artikel membincangkan membuat, menerbitkan, dan mengekalkan perpustakaan JavaScript, memberi tumpuan kepada perancangan, pembangunan, ujian, dokumentasi, dan strategi promosi.

Artikel ini membincangkan strategi untuk mengoptimumkan prestasi JavaScript dalam pelayar, memberi tumpuan kepada mengurangkan masa pelaksanaan dan meminimumkan kesan pada kelajuan beban halaman.

Artikel ini membincangkan debugging JavaScript yang berkesan menggunakan alat pemaju pelayar, memberi tumpuan kepada menetapkan titik putus, menggunakan konsol, dan menganalisis prestasi.

Bawa kesan filem matriks ke halaman anda! Ini adalah plugin jQuery yang sejuk berdasarkan filem terkenal "The Matrix". Plugin mensimulasikan kesan aksara hijau klasik dalam filem, dan hanya pilih gambar dan plugin akan mengubahnya menjadi gambar gaya matriks yang diisi dengan aksara angka. Datang dan cuba, sangat menarik! Bagaimana ia berfungsi Plugin memuat imej ke kanvas dan membaca nilai piksel dan warna: data = ctx.getimagedata (x, y, settings.grainsize, settings.grainsize) .data Plugin dengan bijak membaca kawasan segi empat tepat gambar dan menggunakan jQuery untuk mengira warna purata setiap kawasan. Kemudian, gunakan

Artikel ini akan membimbing anda untuk membuat karusel gambar mudah menggunakan perpustakaan jQuery. Kami akan menggunakan perpustakaan BXSlider, yang dibina di atas jQuery dan menyediakan banyak pilihan konfigurasi untuk menubuhkan karusel. Pada masa kini, Gambar Carousel telah menjadi ciri yang mesti ada di laman web - satu gambar lebih baik daripada seribu perkataan! Selepas membuat keputusan untuk menggunakan karusel gambar, soalan seterusnya adalah bagaimana untuk menciptanya. Pertama, anda perlu mengumpul gambar-gambar resolusi tinggi yang berkualiti tinggi. Seterusnya, anda perlu membuat karusel gambar menggunakan HTML dan beberapa kod JavaScript. Terdapat banyak perpustakaan di web yang dapat membantu anda membuat karusel dengan cara yang berbeza. Kami akan menggunakan Perpustakaan BXSlider Sumber Terbuka. Perpustakaan BXSlider menyokong reka bentuk responsif, jadi karusel yang dibina dengan perpustakaan ini dapat disesuaikan dengan mana -mana

Set data sangat penting dalam membina model API dan pelbagai proses perniagaan. Inilah sebabnya mengapa mengimport dan mengeksport CSV adalah fungsi yang sering diperlukan. Dalam tutorial ini, anda akan belajar cara memuat turun dan mengimport fail CSV dalam sudut


Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

ZendStudio 13.5.1 Mac
Persekitaran pembangunan bersepadu PHP yang berkuasa

Penyesuai Pelayan SAP NetWeaver untuk Eclipse
Integrasikan Eclipse dengan pelayan aplikasi SAP NetWeaver.

mPDF
mPDF ialah perpustakaan PHP yang boleh menjana fail PDF daripada HTML yang dikodkan UTF-8. Pengarang asal, Ian Back, menulis mPDF untuk mengeluarkan fail PDF "dengan cepat" dari tapak webnya dan mengendalikan bahasa yang berbeza. Ia lebih perlahan dan menghasilkan fail yang lebih besar apabila menggunakan fon Unicode daripada skrip asal seperti HTML2FPDF, tetapi menyokong gaya CSS dsb. dan mempunyai banyak peningkatan. Menyokong hampir semua bahasa, termasuk RTL (Arab dan Ibrani) dan CJK (Cina, Jepun dan Korea). Menyokong elemen peringkat blok bersarang (seperti P, DIV),

SecLists
SecLists ialah rakan penguji keselamatan muktamad. Ia ialah koleksi pelbagai jenis senarai yang kerap digunakan semasa penilaian keselamatan, semuanya di satu tempat. SecLists membantu menjadikan ujian keselamatan lebih cekap dan produktif dengan menyediakan semua senarai yang mungkin diperlukan oleh penguji keselamatan dengan mudah. Jenis senarai termasuk nama pengguna, kata laluan, URL, muatan kabur, corak data sensitif, cangkerang web dan banyak lagi. Penguji hanya boleh menarik repositori ini ke mesin ujian baharu dan dia akan mempunyai akses kepada setiap jenis senarai yang dia perlukan.