Saiz Tindanan Panggilan Maksimum Melebihi Ralat dalam JavaScript | Diterangkan

Saiz Tindanan Panggilan Maksimum Melebihi Ralat Dalam Javascript Diterangkan



Fungsi rekursif ialah fungsi yang memanggil kaedah dalam kaedah lain. Walau bagaimanapun, rekursi tak terhingga menyebabkan ralat saiz tindanan. Ralat saiz tindanan berlaku kerana menunggu banyak permintaan. Masalah ini timbul apabila memanggil fungsi itu sendiri. Dengan mempertimbangkannya, artikel ini menerangkan bahawa saiz tindanan panggilan maksimum melebihi ralat dalam JavaScript. Selain itu, penyelesaian juga disediakan untuk menyelesaikan ralat.

Artikel itu memberi kami perkhidmatan seperti berikut:







  • Saiz Tindanan Panggilan Maksimum Melebihi Ralat dalam JavaScript
  • Menggunakan if Condition untuk menyelesaikan saiz tindanan panggilan maksimum melebihi ralat
  • Menggunakan gelung untuk menyelesaikan ralat melebihi saiz tindanan panggilan maksimum.

Saiz Tindanan Panggilan Maksimum Melebihi Ralat dalam JavaScript

Ralat melebihi saiz tindanan berlaku apabila pengguna memanggil fungsi rekursif. Ralat jenis ini berlaku kerana berulang kali menggunakan kaedah. The fun_user() digunakan sebagai panggilan rekursif di dalam fungsi fun_user() dalam JavaScript untuk menjana ralat dalam tetingkap konsol.



Kod



konsol.log ( 'Saiz tindanan panggilan maksimum melebihi' ) ;
fun_user ( ) ;
fungsi fun_user ( )
{
fun_user ( ) ;
}





Dalam kod ini, 'saiz tindanan panggilan maksimum melebihi ralat' dihasilkan dengan memanggil kaedah “fun_user()” dalam fungsi.



Kod memaparkan ralat sebagai 'RangeError: Saiz tindanan panggilan maksimum melebihi.'

Terdapat banyak cara untuk menyelesaikan ralat ini, seperti untuk gelung dan kenyataan bersyarat , yang boleh digunakan untuk mengehadkan panggilan fungsi.

Penyelesaian 1: Menggunakan if Condition untuk menyelesaikan saiz tindanan panggilan maksimum melebihi ralat

Untuk menyelesaikan ralat, syarat if digunakan untuk menyekat saiz tindanan dalam JavaScript. Sebagai contoh, kod diberikan di bawah.

Kod

adalah i = 1 ;
fun_user ( i ) ;
fungsi fun_user ( i ) {
jika ( i < = 10 )
{
konsol.log ( 'Selamat datang ke JavaScript' ) ;
i =i+ 1 ;
fun_user ( i ) ;
} }

Penerangan kod adalah seperti berikut:

  • Pertama, pembolehubah 'saya' dimulakan dengan nilai 1.
  • Selepas itu, fun_user() kaedah digunakan dengan melepasi pembolehubah “saya”.
  • Dalam fungsi ini, jika keadaan digunakan yang menyekat lelaran kepada 10 .
  • Akhirnya, mesej “Selamat datang ke JavaScript” dipaparkan menggunakan “console.log()” kaedah.

Pengeluaran

Penyelesaian 2: Menggunakan untuk Gelung untuk Menyelesaikan Ralat Timbunan Panggilan Maksimum Melebihi

Untuk menyelesaikan ralat, gelung for digunakan untuk mengehadkan lelaran dalam JavaScript. Sebagai contoh, kod diberikan di bawah.

Kod

biarkan keluaran = 0 ;
untuk ( biarkan i = 5 ; i > 0 ; saya-- )
{
keluaran += tambah ( 1 , 1 ) ;
}
fungsi Tambah ( a, b ) {
kembali a + b;
}
konsol.log ( pengeluaran ) ;

Dalam kod ini:

  • Pembolehubah 'pengeluaran' dimulakan dengan nilai 0.
  • Selepas itu, gelung for digunakan untuk melakukan lima lelaran. Dalam gelung ini, Tambah() kaedah dipanggil dengan melepasi nilai 1.
  • Cara Tambah() mengembalikan penambahan dua pembolehubah a dan b .
  • Pada akhirnya, log() kaedah digunakan untuk memaparkan output dalam tetingkap konsol.

Pengeluaran

Keluaran kembali “10” dengan menyelesaikan ralat saiz tindanan panggilan maksimum dalam JavaScript.

Kesimpulan

Panggilan tak terhingga bagi fungsi rekursif berlaku sebagai 'saiz tindanan panggilan maksimum melebihi ralat' dalam JavaScript. Artikel ini menerangkan sebab untuk menyebabkan jenis ralat ini. Selepas itu, dua penyelesaian, termasuk “untuk gelung” dan “kenyataan bersyarat” digunakan untuk menyelesaikan ralat. Oleh itu, fungsi panggilan dihadkan dengan menggunakan penyelesaian ini.