Modulus Operator (%) ใน JavaScript
ตัวดำเนินการ modulus (%) ใช้สำหรับหา เศษ (Remainder) จากการหารจำนวนเต็ม (Integer Division) ของ Operand สองตัว
รูปแบบไวยากรณ์ (Syntax)
result = dividend % divisor;
ตัวอย่างโค้ด
<html>
<body>
<script>
var a = 33;
var b = 10;
document.write("a % b = ");
result = a % b;
document.write(result); // แสดงผล: 3
</script>
</body>
</html>
หลักการทำงาน
a % bคืนค่าเศษจากการหารa / b- เครื่องหมายของผลลัพธ์ จะตรงกับ Dividend (ตัวถูกหาร) ไม่ใช่ Divisor (ตัวหาร)
ตัวอย่างเพิ่มเติม
console.log(10 % 3); // 1 (10 = 3*3 + 1)
console.log(15 % 5); // 0 (หารลงตัว)
console.log(7 % 2); // 1 (คี่)
console.log(10 % 4); // 2
console.log(-10 % 3); // -1 (เครื่องหมายตาม Dividend)
console.log(10 % -3); // 1 (เครื่องหมายตาม Dividend)
console.log(5.5 % 2); // 1.5 (รองรับทศนิยม)
console.log(10 % 0); // NaN (หารศูนย์ไม่ได้)
การประยุกต์ใช้งานจริง
- ตรวจสอบเลขคู่/คี่:
num % 2 === 0(Even),num % 2 !== 0(Odd) - วนซ้ำแบบ Cyclic:
index = (index + 1) % length(Carousel, Round-robin) - แปลงหน่วยเวลา:
seconds % 60(วินาที),minutes % 60(นาที) - ตรวจสอบหารลงตัว:
num % divisor === 0 - สุ่มตัวเลขในช่วง:
Math.floor(Math.random() * max) % max
ข้อควรระวัง
- JavaScript ใช้ Remainder Operator ไม่ใช่ Modulo Operator แบบคณิตศาสตร์บริสุทธิ์ (ผลลัพธ์เครื่องหมายต่างกันเมื่อ Dividend เป็นลบ)
- สำหรับ Modulo แบบคณิตศาสตร์แท้:
((a % b) + b) % b