recursion in javascript

JavaScript
function pow(x, n) {
  if (n == 1) {
    return x;
  } else {
    return x * pow(x, n - 1);
  }
}

alert( pow(3, 3) ); // 27// Count Up
function countup(n) {
    //Base case
    if (n < 1) {
        return [];
    } else {
        // The Recursion
        const countArray = countup(n - 1);
        countArray.push(n); 
        return countArray; 
    }
}

// Count Down
function countdown(n) {
    // Base case
    if (n < 1) {
        return [];
    } else {
        // The Recursion
        const count = countdown(n - 1);
        count.unshift(n); 
        return count; 
    }
}


// User Defined
function rangeOfNumbers(startNum, endNum) {
    // Base case
    if (startNum - endNum === 0) {
        return [startNum];
    } else {
        // The Recursion
        const count = rangeOfNumbers(startNum, endNum - 1);
        count.push(endNum);
        return count;
    }
}/*Java*/
static void recursion(){ recursion(0); }
static void recursion(int x){
	System.out.println("eheh " + x);
    if(x != 666) recursion(x+1);
}function recurse(arr=[])
{
  	// base case, to break the recursion when the array is empty
    if (arr.length === 0) {
    	return;
    }
  	
  	// destructure the array
	const [x, ...y] = arr;
  
  	// Do something to x
  	
  	return recurse(y);
}var countdown = function(value) {
    if (value > 0) {
        console.log(value);
        return countdown(value - 1);
    } else {
        return value;
    }
};
countdown(10);
Source

Also in JavaScript: