Olá Renan! Tudo bem?
Como forma de complementar ao que você disse, quando você cria um array como [ , , , ]
, está criando um array esparso com três posições, mas sem valores definidos nessas posições. Por isso, o length
do array é 3. É como se você tivesse três "gavetas" vazias.
No caso do seu teste:
const arraySem1oValor = [ , 'valor' ];
- Aqui, você tem um array com duas posições: a primeira é vazia (undefined) e a segunda contém o valor 'valor'
. Por isso, o length
é 2.
const arraySem2oValor = [ 'valor' , ];
- Neste caso, você tem um array com uma posição que contém o valor 'valor'
. O segundo espaço que parece estar vazio no final não é contado, então o length
é 1.
O comportamento que você está observando é devido à forma como o JavaScript trata arrays esparsos. Quando você adiciona vírgulas sem valores entre elas, você está criando espaços vazios, mas esses espaços ainda são contados no comprimento do array.
Bons estudos!