Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> JavaScript

Parameters without defaults after default parameters ใน JavaScript

Default parameters มาจัดการ function parameters ให้สะดวก อนุญาตให้ initialize formal parameters ด้วย default values ได้ก็ต่อเมื่อไม่มีค่าหรือ undefined ถูกส่งมา ด้วย ES6 สามารถตั้ง default parameters ได้ง่าย

ตัวอย่าง

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

โค้ดต่อไปนี้ทำงานถูกต้อง แสดงการทำงานของ parameters จากซ้ายไปขวา Overwrite default parameters ได้แม้ parameters เพิ่มมาหลังจากที่ไม่มี default

ตัวอย่าง

<html> 
  <body> 
    <script> 
      function display(val1 = 10, val2) { 
        return [val1, val2]; 
      } 
      document.write(display());       // [10, undefined]
      document.write(display(20));     // [20, undefined]
    </script> 
  </body> 
</html>

คำอธิบาย

  • Parameters ที่มี default value สามารถอยู่ ก่อน parameters ที่ไม่มี default ได้
  • แต่ถ้าเรียกฟังก์ชันโดยไม่ส่ง argument สำหรับ parameter ที่ไม่มี default จะได้ undefined
  • Parameter ที่ไม่มี default แต่อยู่หลัง default parameter — เรียกว่า "parameters without defaults after default parameters"

Best Practices

// แนะนำ: ใส่ required parameters ก่อน optional parameters
function greet(name, greeting = "Hello") {  // OK
  return `${greeting}, ${name}!`;
}

// หลีกเลี่ยง: optional ก่อน required (สับสน)
function greet(greeting = "Hello", name) {  // Confusing
  return `${greeting}, ${name}!`;
}

// เรียก: greet("John") → greeting="John", name=undefined ❌
// เรียก: greet(undefined, "John") → greeting="Hello", name="John" ✅ แต่แปลก