ข้อผิดพลาดขนาดสแต็กการโทรสูงสุดเกินใน JavaScript | อธิบาย

Khx Phid Phlad Khnad Stae Kkar Thor Sungsud Kein Ni Javascript Xthibay



ฟังก์ชันแบบเรียกซ้ำคือฟังก์ชันที่เรียกใช้เมธอดภายในเมธอดอื่น อย่างไรก็ตาม การเรียกซ้ำที่ไม่สิ้นสุดทำให้เกิดข้อผิดพลาดขนาดสแต็ก ข้อผิดพลาดขนาดสแต็กเกิดขึ้นเนื่องจากคำขอจำนวนมากที่รอดำเนินการ ปัญหานี้เกิดขึ้นเมื่อเรียกใช้ฟังก์ชันเอง เมื่อพิจารณาแล้ว บทความนี้อธิบายว่าขนาดสแต็กการโทรสูงสุดเกินข้อผิดพลาดใน JavaScript นอกจากนี้ยังมีวิธีแก้ไขเพื่อแก้ไขข้อผิดพลาด

บทความให้บริการเราดังนี้:







  • ข้อผิดพลาดขนาดสแต็กการโทรสูงสุดเกินใน JavaScript
  • การใช้ if Condition เพื่อแก้ไขข้อผิดพลาดขนาดสแต็กการโทรสูงสุดเกิน
  • การใช้ for loop เพื่อแก้ไขข้อผิดพลาดที่เกินขนาดสแต็กการโทรสูงสุด

ข้อผิดพลาดขนาดสแต็กการโทรสูงสุดเกินใน JavaScript

ข้อผิดพลาดขนาดสแต็กเกินเกิดขึ้นเมื่อผู้ใช้เรียกใช้ฟังก์ชันแบบเรียกซ้ำ ข้อผิดพลาดประเภทนี้เกิดขึ้นเนื่องจากการเรียกใช้เมธอดซ้ำๆ ดิ fun_user() ถูกใช้เป็นการเรียกซ้ำภายในฟังก์ชัน fun_user() ใน JavaScript เพื่อสร้างข้อผิดพลาดในหน้าต่างคอนโซล



รหัส



console.log ( 'เกินขนาดสแต็กการโทรสูงสุด' ) ;
fun_user ( ) ;
การทำงาน fun_user ( )
{
fun_user ( ) ;
}





ในรหัสนี้ the “ข้อผิดพลาดขนาดสแต็กการโทรสูงสุดเกิน” ถูกสร้างขึ้นโดยการเรียกเมธอด “fun_user()” ภายในฟังก์ชัน



รหัสแสดงข้อผิดพลาดเป็น “RangeError: เกินขนาดสแต็กการโทรสูงสุด”

มีหลายวิธีในการแก้ไขข้อผิดพลาดนี้ เช่น สำหรับวง และ งบเงื่อนไข ซึ่งสามารถใช้เพื่อจำกัดการเรียกใช้ฟังก์ชัน

โซลูชันที่ 1: การใช้ if Condition เพื่อแก้ไขขนาดการโทรสูงสุดเกินข้อผิดพลาด

เพื่อแก้ไขข้อผิดพลาด ใช้เงื่อนไข if เพื่อจำกัดขนาดสแต็กใน JavaScript ตัวอย่างเช่น รหัสได้รับด้านล่าง

รหัส

เคยเป็น ผม = 1 ;
fun_user ( ผม ) ;
การทำงาน fun_user ( ผม ) {
ถ้า ( ผม < = 10 )
{
console.log ( 'ยินดีต้อนรับสู่จาวาสคริปต์' ) ;
ผม =i+ 1 ;
fun_user ( ผม ) ;
} }

คำอธิบายของรหัสมีดังนี้:

  • ประการแรก ตัวแปร 'ผม' เริ่มต้นด้วยค่า 1
  • หลังจากนั้น, fun_user() ใช้วิธีส่งผ่านตัวแปร 'ผม'.
  • ในฟังก์ชันนี้ หากใช้เงื่อนไขที่จำกัดการวนซ้ำเป็น 10 .
  • สุดท้ายข้อความ “ยินดีต้อนรับสู่จาวาสคริปต์” จะแสดงโดยใช้ปุ่ม “console.log()” กระบวนการ.

เอาท์พุต

โซลูชันที่ 2: การใช้ลูปเพื่อแก้ไขข้อผิดพลาดขนาดสแต็กการโทรสูงสุดเกิน

เพื่อแก้ไขข้อผิดพลาด ใช้ for loop เพื่อจำกัดการวนซ้ำใน JavaScript ตัวอย่างเช่น รหัสได้รับด้านล่าง

รหัส

อนุญาต เอาท์พุต = 0 ;
สำหรับ ( อนุญาต ผม = 5 ; ผม > 0 ; ผม-- )
{
เอาต์พุต += เพิ่ม ( 1 , 1 ) ;
}
การทำงาน เพิ่ม ( ก, ข ) {
กลับ เอ + ข;
}
console.log ( ผลผลิต ) ;

ในรหัสนี้:

  • ตัวแปร “ผลผลิต” เริ่มต้นด้วยค่า 0
  • หลังจากนั้นจะใช้ for loop เพื่อทำซ้ำห้าครั้ง ในลูปนี้ เพิ่ม() วิธีการถูกเรียกโดยการส่งผ่านค่า 1
  • วิธีการ เพิ่ม() ส่งคืนการบวกสองตัวแปร เอ และ .
  • ในที่สุด บันทึก() มีการใช้เมธอดเพื่อแสดงผลลัพธ์ในหน้าต่างคอนโซล

เอาท์พุต

ผลลัพธ์ที่ได้กลับมา “10” โดยการแก้ไขข้อผิดพลาดของขนาดสแต็กการโทรสูงสุดใน JavaScript

บทสรุป

การเรียกฟังก์ชันแบบเรียกซ้ำไม่มีที่สิ้นสุดเกิดขึ้นเป็น “ข้อผิดพลาดขนาดสแต็กการโทรสูงสุดเกิน” ในจาวาสคริปต์ บทความนี้อธิบายสาเหตุของข้อผิดพลาดประเภทนี้ ต่อมามีวิธีแก้ปัญหา 2 ทาง ได้แก่ “สำหรับวง” และ “คำสั่งแบบมีเงื่อนไข” ใช้เพื่อแก้ไขข้อผิดพลาด ดังนั้น ฟังก์ชันการโทรจึงถูกจำกัดโดยใช้โซลูชันเหล่านี้