Default parameters มาจัดการ function parameters ให้สะดวก ตั้งค่า default ให้ formal parameters ได้ก็ต่อเมื่อไม่มีค่าหรือ undefined ถูกส่งมา
ตัวอย่าง
<html>
<body>
<script>
// default is set to 1
function inc(val1, inc = 1) {
return val1 + inc;
}
document.write(inc(10, 10));
document.write("<br>");
document.write(inc(10));
</script>
</body>
</html>
รายละเอียด Default Parameters (ES6+)
// Basic syntax
function greet(name = "Guest", greeting = "Hello") {
return `${greeting}, ${name}!`;
}
greet(); // "Hello, Guest!"
greet("John"); // "Hello, John!"
greet("John", "Hi"); // "Hi, John!"
// Default expression (evaluated at call time)
function createUser(name, timestamp = Date.now()) {
return { name, createdAt: timestamp };
}
// Destructuring with defaults
function connect({ host = "localhost", port = 3000, secure = false } = {}) {
// ...
}
connect(); // ใช้ defaults ทั้งหมด
// Rest parameter กับ default
function sum(...numbers = [0]) {
return numbers.reduce((a, b) => a + b, 0);
}
ข้อควรระวัง
- Default expression evaluate ทุกครั้งที่เรียกฟังก์ชัน (ไม่ใช่ตอน define)
- Parameters หลัง default parameter สามารถไม่มี default ได้ (แต่จะได้ undefined ถ้าไม่ส่งมา)
undefinedtrigger default,nullไม่ trigger