Olá, Gabriel
Entendo sua confusão, e é uma ótima pergunta!
A diferença entre os dois exemplos que você mencionou está na ordem das operações. Em JavaScript, assim como em muitas outras linguagens de programação, a multiplicação e a divisão são realizadas antes da adição e da subtração. Isso é conhecido como a regra de precedência de operadores.
No primeiro exemplo, let numeroAleatorio1a3 = parseInt(Math.random() * 3 + 1);
, o JavaScript primeiro multiplica o resultado de Math.random()
por 3, e então adiciona 1 ao resultado. Isso significa que o número aleatório gerado estará no intervalo de 1 (inclusive) até 4 (exclusivo).
No segundo exemplo, let numeroAleatorio1a3 = parseInt(Math.random() * 3) + 1;
, o JavaScript primeiro multiplica o resultado de Math.random()
por 3, e então o resultado é passado para a função parseInt()
, que o arredonda para o número inteiro mais próximo. Depois disso, 1 é adicionado ao resultado. Isso significa que o número aleatório gerado estará no intervalo de 1 (inclusive) até 3 (inclusive).
Portanto, se você quiser gerar um número aleatório entre 1 e 3 (inclusive), você deve usar o segundo exemplo. Se você usar o primeiro exemplo, você poderá gerar um número 4, o que pode não ser o que você deseja.
Espero ter ajudado e bons estudos!