Cache the length of the array so you would have the following:

function recurse(node) {
    for(var i = 0, count = node.children.length; i < count; i++) {
        recurse(node.children[i]);
    }
} 

You should always cache especially when you're dealing with HTMLCollections.

Answer from MackPro on Stack Overflow
🌐
freeCodeCamp
freecodecamp.org › news › quick-intro-to-recursion
A Quick Intro to Recursion in Javascript
September 3, 2019 - Recursive does not, it simply passes updated parameters between each call. ... In your travels, you may have been warned about the dreaded infinite loop.
🌐
freeCodeCamp
freecodecamp.org › news › recursion-in-javascript-simplified
How Does Recursion Work? Simplified in JavaScript with Examples
October 7, 2022 - If the condition for execution forever remains true, you get an infinite loop which can crash your application. It's the same with recursion – as long as the condition for recursion remains true, recursion keeps happening until a condition stops it, else, you get an infinite recursion. Here's a video version of this tutorial if you would like that: Recursion in JavaScript, Simplified
🌐
Appsmith
community.appsmith.com › content › blog › recursion-vs-loops-simple-introduction-elegant-javascript
Recursion Vs. Loops: A Simple Introduction to Elegant Javascript | Appsmith Community Portal
July 12, 2023 - When coding in JavaScript, you often encounter problems that need you to do something over and over, like going through a list of items. You can solve these problems using loops, like the for loop, which is pretty straightforward. But there's another cool way called recursion, where a function calls itself to solve a problem bit by bit.
🌐
JavaScript.info
javascript.info › tutorial › the javascript language › advanced working with functions
Recursion and stack
We can easily see the principle: for an object {...} subcalls are made, while arrays [...] are the “leaves” of the recursion tree, they give immediate result. Note that the code uses smart features that we’ve covered before: Method arr.reduce explained in the chapter Array methods to get the sum of the array. Loop for(val of Object.values(obj)) to iterate over object values: Object.values returns an array of them.
🌐
SitePoint
sitepoint.com › blog › javascript › recursion in functional javascript
Recursion in Functional JavaScript — SitePoint
November 11, 2024 - M. David Green demonstrates the powerful, but dizzying concept of recursion by refactoring normal for and while loops to use functions that call themselves.
🌐
DEV Community
dev.to › thawkin3 › recursion-vs-loops-in-javascript-14em
Recursion vs. Loops in JavaScript - DEV Community
August 26, 2022 - If we just called our function recursively, we’d end up in an infinite loop, so we need some way to break out. That’s why we have the condition that handles when x <= 1. When we reach that point, we stop recursively calling our factorial function. This is the base case. ... Let’s try a similar example. This time let’s implement the power function, which calculates the result of a base number raised to an exponent. So for example, 2^3 is two raised to the power of three, or 2 * 2 * 2, which is 8. In JavaScript, there are a couple of ways to do power functions natively, like by calling Math.pow(2, 3) or using the exponentiation syntax like 2 ** 3.
🌐
Programiz
programiz.com › javascript › recursion
JavaScript Recursion (with Examples)
If count > 1 evaluates to true, the program decreases the value of count and calls counter() with the new value of count (recursion).
Find elsewhere
🌐
JavaScript Tutorial
javascripttutorial.net › home › javascript tutorial › javascript recursive function
JavaScript Recursive Function
August 8, 2016 - This tutorial shows you how to use the recursion technique to develop a JavaScript recursive function, which is a function that calls itself.
🌐
Medium
medium.com › weekly-webtips › simplifying-functional-programming-with-recursion-javascript-aa7007f4b159
Simplifying Functional Programming with Recursion (Javascript) | by Meghan Hein | Webtips | Medium
July 27, 2020 - So, a recursive function executes some code then runs the function again unless an exit condition is met (which stops the circuit of calling itself)… Does this flow sound familiar??
🌐
Better Programming
betterprogramming.pub › recursion-vs-loops-in-javascript-d588c5b0df31
Recursion vs. Loops in JavaScript | by Tyler Hawkins | Better Programming
August 26, 2022 - If you can master those two concepts, recursion isn’t as scary or complex as you think. Recursive code is often shorter to write and (in some cases) easier to read. Let’s walk through five code examples together. We’ll solve each problem first by using a loop, then we’ll solve it using recursion.
🌐
egghead.io
egghead.io › lessons › javascript-refactor-a-loop-in-javascript-to-use-recursion
Refactor a Loop in JavaScript to Use Recursion | egghead.io
We're going to return counter n plus one. We'll pass in an n as a parameter to our counter, and then pass in zero to our function call. Recursion, simply put, is when a function calls itself.
Published: November 15, 2018
🌐
Medium
medium.com › @kenny.hom27 › so-you-want-to-build-a-recursive-recursive-recursive-function-in-javascript-ceb508fb1a63
So you want to build a recursive(recursive(recursive…)) function in Javascript | by Kenny Hom | Medium
May 2, 2018 - With a recursive approach, the function uses a branching structure by calling itself until a base condition is satisfied. With an iterative approach, a looping statement such as a for loop is used until a condition fails.
🌐
Educative
educative.io › answers › introduction-to-recursion-in-javascript
Introduction to recursion in JavaScript
October 7, 2020 - In terms of computer programming, a recursive function is a function that calls itself until it satisfies some exit condition. Otherwise, we’ll be stuck into an infinite loop or, in case of JavaScript, the call stack will overflow.
🌐
Better Programming
betterprogramming.pub › javascript-iteration-v-s-recursion-and-behind-the-scene-e12fe1756343
Iteration versus Recursion in JavaScript | by JeffreyxCodes | Better Programming
May 22, 2019 - This is because the loop taking place in the Call Stack is blocking any item coming from the Callback Queue. That being said, other tabs would work normally since only the process for that one tab is stalled. In a similar case where a large enough recursion occurs, JavaScript actually crashes due to stack overflow.
🌐
YouTube
youtube.com › watch
Recursion in JavaScript: Loop Like a Pro! - YouTube
🔥 I taught myself recursion (the hard way) by learning Scheme. In this video I’ll talk about what actually matters, so you can learn Recursion in JavaScript...
Published: September 22, 2022
🌐
Medium
medium.com › @zfrisch › understanding-recursion-in-javascript-992e96449e03
Understanding Recursion in JavaScript | by Zak Frisch | Medium
November 28, 2016 - When constructing a recursive function in JavaScript there must always be a Leave Event. What is a Leave Event? It is any control statement that allows the function to exit the recursive loop.
🌐
Devchallenges
devchallenges.io › learn › 3-javascript › javascript-recursion
Recursion in JavaScript: A Comprehensive Guide | devChallenges
Recursion is a function that calls itself until it doesn't, defined by a base case that halts further recursive calls. It's an expression of a solution in terms of itself, often linked with divide-and-conquer strategies.
🌐
DEV Community
dev.to › kriegercisneros › recursion-in-js-for-beginners-avoiding-and-infinite-loop-17bh
Recursion in JS for Beginners, avoiding an infinite loop - DEV Community
February 20, 2023 - JavaScript is throwing us this error because we are recursively calling recursionFunction outside of our base case declaration (the "if" statement right at the beginning). Think about it like this: we are calling a function from the body of itself. Which means we are inherently setting up the stage for an infinite loop...
🌐
Medium
medium.com › nerd-for-tech › an-introduction-to-recursion-in-javascript-8a42b200ec0a
An introduction to recursion in Javascript | by Brian Blankenship | Medium
July 10, 2021 - That’s pretty much it. Simple right? Yep! A recursive function can: Have multiple counters for nth dimensional arrays/objects. Dynamically alter how many times it loops.