Recursive function to reverse a number

You need the num, reversed, and result variables to be created anew each time the function is called externally. Here's one simple tweak, by defining the recursive function inside the top reverseNum function:

function reverseNum(n) {
  let num;
  let reversed = '';
  let result;
  const recurse = (n) => {
    for (let i = 0; i < n; i++) {
      num = n % 10; // get the last digit e.g 352 %10 = 2
      reversed += num
      result = parseInt(n / 10); // remove last digit e.g. parseInt(352/10) = 35
      recurse(result);
      if (result === 0) {
        break;
      }
    }
    return reversed;
  };
  return recurse(n);
}

console.log(reverseNum(1234));
console.log(reverseNum(1234));

But a more elegant method would be:

function reverseNum(n, str = String(n)) {
  const thisDigit = str[str.length - 1];
  const recursiveResult = str.length === 1 ? '' : reverseNum(str.slice(0, str.length - 1));
  return Number(thisDigit + recursiveResult);
}

console.log(reverseNum(1234));
console.log(reverseNum(1234));