Default Parameters (ES2015/ES6) ช่วยให้สามารถ กำหนดค่าเริ่มต้นให้พารามิเตอร์ของฟังก์ชัน ได้ โดยตรงในหัวฟังก์ชัน ค่าเริ่มต้นจะถูกใช้เมื่อ ไม่ได้ส่งอาร์กิวเมนต์ หรือส่งเป็น undefined เท่านั้น
ตัวอย่าง
<html>
<body>
<script>
// default ค่า inc = 1
function inc(val1, inc = 1) {
return val1 + inc;
}
document.write(inc(10, 10)); // 20
document.write("<br>");
document.write(inc(10)); // 11 (ใช้ค่าเริ่มต้น inc = 1)
</script>
</body>
</html>
รายละเอียดเพิ่มเติม
- ค่าเริ่มต้นสามารถเป็นนิพจน์ (expression) ได้ เช่น
function foo(x = Date.now()) - พารามิเตอร์ก่อนหน้าสามารถถูกอ้างอิงในค่าเริ่มต้นของพารามิเตอร์หลังได้:
function foo(a = 1, b = a * 2) - ทำงานร่วมกับ Destructuring ได้:
function foo({x = 1, y = 2} = {}) argumentsobject จะไม่รวมค่าเริ่มต้น (ใน strict mode)
เปรียบเทียบกับวิธีเก่า (Pre-ES6)
// วิธีเก่า
function inc(val1, inc) {
inc = inc !== undefined ? inc : 1;
return val1 + inc;
}
Default Parameters ทำให้โค้ดสะอาด อ่านง่าย และลดบั๊กจากการตรวจสอบ undefined เอง