Como resolver?

O ponto chave aqui é a separação dos algarismos de um número. Uma das formas que podemos usar para alcançar isso é converter o número para outros tipos mais fáceis de manipular individualmente, como strings, por exemplo.

Resolução

Para resolver podemos converter o número para string, dessa forma podemos utilizar uma estrutura de repetição para iterar sobre a string elevando cada caractere ao quadrado individualmente e concatenando o resultado em uma string. No fim retornamos essa string convertida de volta para número:

function squareDigits(num){  const str = num.toString()
  let result = ""

  for (let i = 0; i < str.length; i++) {
    result += Math.pow(+str[i], 2).toString()
  }

  return Number(result)
}

Refatorando

Podemos também, além de usar strings, separar a string em um array de caracteres para podermos ter acesso aos métodos para arrays do próprio Javascript, como o map. Com isso podemos executar uma função em cada caractere do array e retornar um novo array com os resultados, que então são unidos em uma única string e convertidos para número em seguida:

function squareDigits(num) {
  const digitsString = num.toString()
	const digitsArray = digitsString.split('')
	const squaredArray = digitsArray.map(number => number ** 2)
	const squaredString = squaredArray.join('')
  return Number(squaredString)
}

Também podemos reduzir nosso código ao encadear as funções passando o retorno de uma imediatamente para a próxima:

function squareDigits(num) {
  const digitsArray = num.toString().split('')
  return Number(digitsArray.map(number => number ** 2).join(''))
}