ここだけ読めば おk
Uncaught RangeError: Maximum call stack size exceeded
これは
「処理が無限ループしてますよ」
っていう意味です。
例
たとえば、関数の中で同じ関数を呼び出すようなコード
function roop(){
roop(); // 「roop()を実行すると、roop()を実行する」という処理なので無限に終わらない。
}
※ if文などで、きちんとroop()を呼び出さない状況も用意してあげればセーフです。
※ そのように上手にループを活用してる関数は 再帰関数 と呼ばれています。
たとえば、whileやforのループで、終了する条件に永久に合致しないコード
// i の値が null になることはないので、無限に終わらない。
for (let i = 0; i === null; i++) {
//処理
}
// while 条件式がずっとtrue判定なので、無限に終わらない。
while( true ){
//処理
}
この記事を書いたあらすじ
メンティーから「表題のエラーが出たからググってみたけど、解説がむずかしすぎてよくわからない」という質問を受けました。
そんな難しい話じゃないのにな〜って思いながら試しにググってみたら、
たしかに、再帰関数がどうとかコールスタックがどうとか、
そこまでの説明求めてないっていうノリの記事がSEOで上位だったので、
Qiitaの力をかりて、このシンプルな説明が勉強中のエンジニアの卵のひとたちに真っ先に届けばいいなーと思いました。