Langkau ke kandungan
WANCODE
EN

Nombor dan Operator

14 minitPemulaHTML · CSS · JS

Dalam pelajaran ini

  • Guna + - * / % dan **, dan ramal susunan ia dijalankan
  • Kemas kini variable dengan +=, -= dan ++
  • Terangkan NaN dan kejutan nombor titik terapung dalam 0.1 + 0.2
  • Paparkan wang dengan toFixed(2) dan bundarkan dengan Math.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

JavaScript
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

JavaScript
const price = 10 + 5 * 2;
console.log(price); // 20, not 30

Dengan kurungan

JavaScript
const price = (10 + 5) * 2;
console.log(price); // 30

Baki: 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:

JavaScript
const minutes = 125;
const hours = Math.floor(minutes / 60); // 2
const rest = minutes % 60;              // 5
console.log(hours + "h " + rest + "m"); // 2h 5m

Mengubah nombor di tempatnya

JavaScript
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            → 24

Ini 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

JavaScript
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.57

Komputer 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

  • total sama dengan 3 × nasi lemak + 2 × teh tarik
  • Pengiraan menggunakan variable harga dan kuantiti
  • Konsol memaparkan Total: RM25.10

Uji kefahaman

Q1

Apakah hasil 2 + 3 * 4?

Q2

Apakah 17 % 5?

Q3

Apakah hasil (9.5).toFixed(2)?

Apa yang anda pelajari

  • * / % dijalankan sebelum + -; guna kurungan untuk menjelaskan susunan.
  • % memberi baki; Math.floor membuang perpuluhan; += dan ++ mengemas kini let di tempatnya.
  • Teks + nombor mencantumkan teks. Tukar dengan Number(...); kira-kira yang mustahil memberi NaN.
  • Nombor perpuluhan adalah anggaran (0.1 + 0.2). Paparkan wang dengan toFixed(2) dan kira dalam sen apabila ketepatan penting.
Pratonton

Output konsol daripada kod anda akan dipaparkan di sini.

Langkah 1 daripada 3