Executando verificação de segurança...
5

Bom, só pra completar, este é o trecho da especificação da linguagem que define o ponto como separador decimal:


DecimalLiteral ::
    DecimalIntegerLiteral . DecimalDigits[+Sep]opt ExponentPart[+Sep]opt
    . DecimalDigits[+Sep] ExponentPart[+Sep]opt

Repare que antes de DecimalDigits há um ponto (.), ou seja, é o único caractere permitido para separar casas decimais em um literal numérico.

Interessante notar também que o ponto pode ser o primeiro caractere (e neste caso a parte inteira é zero), ou seja, x = .5 é o mesmo que x = 0.5.


Já no caso de usar vírgula, como por exemplo:

x = (1,2);
console.log(x); // 2

Neste caso a vírgula é um operador que vai avaliando as expressões, e retorna o valor da última. No caso, 1,2 é uma expressão com o operador vírgula e dois operandos (os números 1 e 2). Ele avalia o valor de cada uma delas (que no caso é o próprio valor numérico) e retorna o valor da última (ou seja, 2). Por isso x vale 2 ao final da execução.

Vale notar que sem parênteses muda:

x = 1,2;
console.log(x); // 1

Porque neste caso os operandos são a expressão x = 1 e o número 2 (porque a vírgula tem precedência menor que o =). Embora o resultado do operador vírgula ainda seja 2 (pois é o valor da última expressão avaliada), x = 1 foi executado de forma "independente" (antes de avaliar o valor da expressão 2), por isso o valor de x ao final é 1.


De qualquer forma, foi muito bom tocar neste ponto, pois usar a vírgula achando que vai funcionar é um erro bem comum entre iniciantes (não só em JS, inclusive).

Carregando publicação patrocinada...
1