Dalam JavaScript, operasi matematik boleh dilaksanakan melalui dua operasi:
1 , -, *, /, % dan pengendali lain.
2. Gunakan fungsi pengiraan objek Matematik. Sebagai contoh, gunakan Math.pow(2,3) untuk mengira 2 dinaikkan kepada kuasa ketiga.
Tidak seperti Java, operasi matematik dalam JavaScript tidak menimbulkan sebarang ralat. Operasi seperti hasil pengiraan melimpah, membahagikan dengan 0, dan mengambil punca kuasa dua nombor negatif semuanya sah Hasilnya adalah nilai istimewa dalam JavaScript: Infiniti positif dan negatif (infiniti), 0 positif dan negatif, NaN (bukan a. nombor):
1. Infiniti positif dan negatif. Apabila hasil pengiraan lebih besar daripada nombor maksimum yang boleh diwakili oleh JavaScript (Number.MAX_VALUE), hasilnya ialah Infiniti positif apabila hasil pengiraan lebih kecil daripada nombor minimum yang boleh diwakili oleh JavaScript (-Number.MAX_VALUE), hasilnya ialah; Infiniti negatif. Operasi matematik seperti , -, * dan / berkaitan dengan Infiniti mengikut peraturan pengiraan had dalam matematik lanjutan. Hasil 1/0 ialah Infiniti positif, dan hasil daripada -1/0 ialah Infiniti negatif.
2. Tambah atau tolak 0. Apabila hasil pengiraan adalah positif, tetapi kurang daripada perpuluhan terkecil yang boleh diwakili oleh JavaScript (Number.MIN_VALUE), hasilnya adalah positif 0 apabila hasil pengiraan negatif, tetapi lebih besar daripada perpuluhan negatif terbesar yang boleh diwakili oleh JavaScript (-Nombor .MIN_VALUE), hasilnya negatif 0. Secara umum, pembangun tidak perlu mengambil berat tentang perbezaan antara 0 positif dan negatif.
3.NaN. Untuk beberapa keputusan pengiraan khas yang tidak boleh dinyatakan walaupun dengan Infiniti positif dan negatif, JavaScript menggunakan NaN untuk mewakilinya (perlu diperhatikan bahawa walaupun NaN secara literal bermaksud "bukan nombor", jenisnya ialah nombor). Pengiraan khas ini termasuk:
1).0/0.
2).Infiniti/Infiniti.
3). Ambil punca kuasa dua nombor negatif.
4). Lakukan operasi penukaran berangka pada rentetan bukan angka.
Untuk Infinity dan NaN, ia bukan sahaja hasil cetakan "tak terhingga" dan "bukan nombor", tetapi juga nama pembolehubah global yang mewakili dua nilai istimewa ini dalam JavaScript. Malah, dalam ECMAScript 3, kedua-dua pembolehubah global ini juga boleh diberikan nilai lain; peraturan yang menjengkelkan ini telah disemak dalam ECMAScript 5, menjadikan kedua-dua pembolehubah global ini baca sahaja. Selain mengakses terus pembolehubah Infinity dan pembolehubah NaN, anda juga boleh menggunakan dua nilai istimewa ini dengan mengakses pembolehubah ahli objek Nombor:
1.Infiniti bersamaan dengan Nombor.POSITIVE_INFINITY.
2.-Infiniti bersamaan dengan Nombor.NEGATIVE_INFINITY.
3.NaN bersamaan dengan Nombor.NaN.
Dalam JavaScript, NaN ialah nilai istimewa yang sangat menarik Ia mempunyai sifat istimewa: ia tidak sama dengan nilai lain (termasuk dirinya sendiri). Terdapat dua cara untuk menentukan sama ada sesuatu nilai ialah NaN:
1 Untuk pembolehubah x, tentukan sama ada x!=x adalah benar. Ungkapan ini benar hanya jika x ialah NaN.
2. Untuk pembolehubah x, panggil fungsi global isNaN() dalam JavaScript untuk menentukan sama ada isNaN(x) adalah benar. Menggunakan kaedah ini untuk menentukan NaN sebenarnya tidak ketat, kerana ungkapan isNaN(x) adalah benar dalam empat kes:
1).x ialah NaN.
2).x ialah rentetan, dan rentetan itu bukan nombor.
3).x ialah objek.
4).x tidak ditentukan.
Selain isNaN(), JavaScript mempunyai satu lagi fungsi global yang berguna: isFinite(). Untuk pembolehubah a, isFinite(a) adalah benar dalam situasi berikut:
1).a ialah nombor, tetapi bukan NaN atau Infiniti positif atau negatif.
2).a ialah rentetan, tetapi kandungan rentetan itu ialah nombor Infiniti bukan NaN, bukan positif atau negatif.
3).a adalah batal.
4).a ialah nilai boolean.
Oleh kerana jenis bukan angka seperti null dan undefined akan menjejaskan keputusan, saya secara peribadi berpendapat adalah yang terbaik untuk menentukan jenis parameter sebelum menggunakan isNaN() atau isFinite().
Percubaan
//Uji positif/negatif 0
var b = Nombor.MIN_VALUE;
console.log(b/2);//0
console.log(-b/2);//0
//Uji NaN
console.log(0/0);//NaN
console.log(Infinity/Infinity);//NaN
console.log(Math.sqrt(-1));//NaN
console.log(parseInt("rentetan"));//NaN
//Uji perbandingan Infiniti
console.log(Infiniti === Nombor.POSITIVE_INFINITY);//benar
console.log(-Infinity === Number.NEGATIVE_INFINITY);//true
//Uji perbandingan NaN
console.log(NaN === NaN);//false
//Ujian ialahNaN()
console.log(isNaN(NaN));//true
console.log(isNaN("42"));//false
console.log(isNaN("rentetan"));//true
console.log(isNaN({}));//true
console.log(isNaN(undefined));//true
console.log(isNaN(null));//false
//Ujian isFinite()
console.log(isFinite(42));//true
console.log(isFinite(Infinity));//false
console.log(isFinite(NaN));//false
console.log(isFinite("29"));//true
console.log(isFinite("rentetan"));//false
console.log(isFinite(null));//true
console.log(isFinite(undefined));//false
console.log(isFinite(true));//true
console.log(isFinite(false));//true