ฟังก์ชัน JavaScript ไม่ได้ดำเนินการใด ๆ เกี่ยวกับการตรวจสอบค่าพารามิเตอร์ (อาร์กิวเมนต์)
Function Parameters และ Arguments
ก่อนหน้านี้ในการกวดวิชานี้คุณได้เรียนรู้ว่าการทำงานสามารถมี parameters :
functionName ( parameter1, parameter2, parameter3 ) {
code to be executed
}
Function parameters เป็นชื่อที่ระบุไว้ในคำนิยามของฟังก์ชั่น
Function arguments เป็นค่าจริงผ่านไป (และที่ได้รับจาก) ฟังก์ชั่น
กฎพารามิเตอร์
จาวาสคริปต์คำจำกัดความของฟังก์ชั่นไม่ได้ระบุชนิดข้อมูลสำหรับพารามิเตอร์
ฟังก์ชั่นจาวาสคริปต์ไม่ได้ดำเนินการตรวจสอบชนิดข้อโต้แย้งผ่าน
ฟังก์ชั่นจาวาสคริปต์ไม่ได้ตรวจสอบจำนวนของอาร์กิวเมนต์ที่ได้รับ
ค่าเริ่มต้นพารามิเตอร์
หากฟังก์ชั่นที่เรียกว่ามีข้อโต้แย้งที่ขาดหายไป (น้อยกว่าประกาศ) ค่าที่ขาดหายไปมีการกำหนดให้: ไม่ได้กำหนด
บางครั้งนี้เป็นที่ยอมรับ แต่บางครั้งมันจะดีกว่าที่จะกำหนดค่าเริ่มต้นให้กับพารามิเตอร์:
หากฟังก์ชั่นที่เรียกว่ามีข้อโต้แย้งมากเกินไป (มากกว่าประกาศ) ขัดแย้งเหล่านี้สามารถเข้าถึงได้โดยใช้การขัดแย้งวัตถุ
อาร์กิวเมนต์วัตถุ
ฟังก์ชัน JavaScript ได้ในตัววัตถุที่เรียกว่าการขัดแย้งวัตถุ
วัตถุอาร์กิวเมนต์มีอาร์เรย์ของการขัดแย้งที่ใช้เมื่อเรียกใช้ฟังก์ชัน (เรียก)
วิธีนี้คุณก็สามารถใช้ฟังก์ชั่นเพื่อค้นหา (ตัวอย่างเช่น) ค่าสูงสุดในรายการของตัวเลข:
ตัวอย่าง
x = findMax(1, 123, 500, 115, 44, 88);
function findMax() {
var i;
var max = -Infinity;
for (i = 0; i < arguments.length; i++) {
if (arguments[i] > max) {
max = arguments[i];
}
}
return max;
}
ลองตัวเอง» หรือสร้างฟังก์ชั่นที่จะสรุปค่าที่ป้อนเข้าทั้งหมด:
ตัวอย่าง
x = sumAll(1, 123, 500, 115, 44, 88);
function sumAll() {
var i, sum = 0;
for (i = 0; i < arguments.length; i++) {
sum += arguments[i];
}
return sum;
}
ลองตัวเอง» อาร์กิวเมนต์จะมีการผ่านค่า
พารามิเตอร์ในการเรียกฟังก์ชั่นที่มีข้อโต้แย้งของฟังก์ชัน
ข้อโต้แย้ง JavaScript จะถูกส่งผ่านโดยค่า: ฟังก์ชั่นเฉพาะได้รับทราบค่าที่ไม่โต้แย้งสถานที่
หากฟังก์ชั่นเปลี่ยนค่าของอาร์กิวเมนต์ก็ไม่ได้เปลี่ยนค่าเดิมของพารามิเตอร์
การเปลี่ยนแปลงข้อโต้แย้งที่มองไม่เห็น (สะท้อน) นอกฟังก์ชั่น
วัตถุที่มีการผ่านอ้างอิง
ใน JavaScript อ้างอิงวัตถุมีค่า
ด้วยเหตุนี้วัตถุที่จะทำตัวเหมือนพวกเขาจะผ่านอ้างอิง:
หากฟังก์ชั่นการเปลี่ยนแปลงคุณสมบัติวัตถุจะเปลี่ยนค่าเดิม
การเปลี่ยนแปลงที่จะคัดค้านคุณสมบัติสามารถมองเห็นได้ (สะท้อน) นอกฟังก์ชั่น