Olá, Rodolfo.
Pela definição de fatorial:
"Para calcular o fatorial de um número, multiplique o número por todos os seus antecessores até chegar ao número 1.
Exemplos:
4! = 4 · 3 · 2 · 1 = 24
5! = 5 · 4 · 3 · 2 · 1 = 120"
Pelo meu entendimento do código, seriam as seguintes explicações:
if (numero === 0 || numero === 1) // Aqui estamos comparando se o número recebido é 0 OU 1.
return 1; // Caso seja um dos dois, a função irá retornar 1. Isso acontece porque o fatorial de 0 é 1 e o fatorial de 1 também é 1 (por convenção matemática). Ou seja, a função não precisará fazer cálculo.
let fatorial = 1; // Aqui iniciamos o fatorial como 1 porque será o primeiro número que multiplicaremos, igual os exemplos de fatorial lá em cima, só que faremos começando pelo menor número que é o 1.
for (let i = 2; i <= numero; i++); // Depois iremos iniciar o "i" como 2 porque ele representa os próximos números que iremos multiplicar. E como esse número que vamos multiplicar vai aumentando de um em um, agente faz o i++ pra incrementar.
i <= numero // Aqui estamos dizendo pra função iterar até o "i" ser igual ou menor que o número recebido na função.
fatorial *= i // Aqui, a cada iteração iremos multiplicar o fatorial pelo "i" (que vai aumentando, lembra? Começa com 2, depois 3, depois 4, e por aí vai.)
let i = 2 // A iteração começa no 2 porque o primeiro número que multiplicaremos é o fatorial = 1.
Exemplo se o número for 5:
i = 2 → fatorial = 1 * 2 = 2
i = 3 → fatorial = 2 * 3 = 6
i = 4 → fatorial = 6 * 4 = 24
i = 5 → fatorial = 24 * 5 = 120
Não sei se deu pra entender (rs). Mas se tiver ainda dúvidas posso tentar explicar melhor. Abraços!