Nombor dan Operator
14 minitPemulaHTML · CSS · JS
Dalam pelajaran ini
- ▸Guna
+ - * / %dan**, dan ramal susunan ia dijalankan - ▸Kemas kini variable dengan
+=,-=dan++ - ▸Terangkan
NaNdan kejutan nombor titik terapung dalam0.1 + 0.2 - ▸Paparkan wang dengan
toFixed(2)dan bundarkan denganMath.round
Idea utama
JavaScript ialah kalkulator yang tidak pernah penat — tetapi ia ikut peraturan matematik dengan tegas, dan nombor perpuluhan disimpan secara anggaran. Fahami peraturannya dan wang akan sentiasa tepat.
Operator-operator
console.log(10 + 3); // 13 add
console.log(10 - 3); // 7 subtract
console.log(10 * 3); // 30 multiply
console.log(10 / 4); // 2.5 divide
console.log(10 % 3); // 1 remainder ("what's left over")
console.log(2 ** 3); // 8 power (2 × 2 × 2)Susunan penting, sama seperti dalam kelas matematik: kurungan dahulu, kemudian **, kemudian * / %, kemudian + -. Operator yang sama taraf dijalankan dari kiri ke kanan. Jika ragu-ragu, tambah kurungan — ia percuma dan menjelaskan niat anda.
Tanpa kurungan
const price = 10 + 5 * 2;
console.log(price); // 20, not 30Dengan kurungan
const price = (10 + 5) * 2;
console.log(price); // 30Baki: operator yang paling dipandang rendah
% memberi baki selepas pembahagian. Ia menjawab soalan seperti "adakah nombor ini genap?" (n % 2 ialah 0) dan "125 minit ialah berapa jam dan minit?" Gandingkannya dengan Math.floor, yang membuang nombor perpuluhan:
const minutes = 125;
const hours = Math.floor(minutes / 60); // 2
const rest = minutes % 60; // 5
console.log(hours + "h " + rest + "m"); // 2h 5mMengubah nombor di tempatnya
let points = 10;
points += 5; // same as points = points + 5 → 15
points -= 3; // same as points = points - 3 → 12
points *= 2; // same as points = points * 2 → 24
points++; // add exactly 1 → 25
points--; // subtract exactly 1 → 24Ini hanya berfungsi pada variable let — const tidak boleh diubah.
NaN: "Not a Number" (bukan nombor)
Apabila kira-kira tidak masuk akal, JavaScript tidak rosak — ia memberi NaN. Contohnya Number("RM12") ialah NaN kerana RM12 bukan nombor, dan "abc" * 2 juga NaN. Sebarang kira-kira dengan NaN menghasilkan NaN, jadi satu nilai yang salah boleh merosakkan keseluruhan pengiraan secara senyap. Berhati-hati juga dengan + dan teks: "12.50" + 5 mencantumkan keduanya menjadi "12.505". Tukar teks kepada nombor dahulu dengan Number(...).
Kejutan 0.1 + 0.2
console.log(0.1 + 0.2); // 0.30000000000000004 (!)
console.log((0.1 + 0.2).toFixed(2)); // "0.30" (a string, for display)
console.log(Math.round(2.5)); // 3
console.log(Math.round(1234.5678 * 100) / 100); // 1234.57Komputer menyimpan nombor perpuluhan dalam binari, dan nombor seperti 0.1 tidak boleh disimpan dengan tepat — sama seperti 1/3 tidak boleh ditulis dengan tepat sebagai 0.333… Ini bukan pepijat JavaScript; kebanyakan bahasa pengaturcaraan begitu juga. Untuk wang, dua tabiat baik: paparkan amaun dengan toFixed(2) (ia memulangkan string seperti "25.10"), dan kira dalam sen penuh apabila ketepatan penting (Math.round(ringgit * 100)).
toFixed memulangkan string. Gunakannya di hujung sekali, apabila anda mahu memaparkan nombor — bukan di tengah-tengah pengiraan.
Tiga pinggan nasi lemak dan dua teh tarik sepatutnya berjumlah RM25.10, tetapi konsol menunjukkan angka lain. Fikirkan kenapa (operator mana yang dijalankan dahulu?), betulkan pengiraan total, dan pastikan konsol memaparkan amaun dengan tepat dua tempat perpuluhan: Total: RM25.10.
Semakan
totalsama dengan 3 × nasi lemak + 2 × teh tarik- Pengiraan menggunakan variable harga dan kuantiti
- Konsol memaparkan
Total: RM25.10
Uji kefahaman
Apa yang anda pelajari
- ✓
* / %dijalankan sebelum+ -; guna kurungan untuk menjelaskan susunan. - ✓
%memberi baki;Math.floormembuang perpuluhan;+=dan++mengemas kiniletdi tempatnya. - ✓Teks + nombor mencantumkan teks. Tukar dengan
Number(...); kira-kira yang mustahil memberiNaN. - ✓Nombor perpuluhan adalah anggaran (
0.1 + 0.2). Paparkan wang dengantoFixed(2)dan kira dalam sen apabila ketepatan penting.
Output konsol daripada kod anda akan dipaparkan di sini.