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

Playlist Youtube - lógica de programação utilizando javascript

E aí, pessoal. Tudo bem com vocês?

Acabo de postar a segunda aula sobre lógica de programação e algoritmos utilizando javascript.

Nessa aula ensino sobre os tipos de dados básicos presentes no javascript: Int, String, Float e Boolean.

Se você está querendo saber por onde começar a estudar programação, essa playlist que estou criando é um bom caminho.

Acesse e vem aprender com a gente: https://www.youtube.com/watch?v=k9s7cGHTIqk

Carregando publicação patrocinada...
5

Só um detalhe: sei que vc quis diferenciar números inteiros e de ponto flutuante (que de fato são tipos diferentes em muitas linguagens), mas vale lembrar que no JavaScript não há esta distinção, pois todos os números são do mesmo tipo (no caso, todos são do tipo Number).

Claro que há métodos que tratam esses valores de forma diferente, como Number.isInteger ou ainda parseInt e parseFloat, mas a própria documentação diz o seguinte:

JavaScript does not have the distinction of "floating point numbers" and "integers" on the language level. parseInt() and parseFloat() only differ in their parsing behavior, but not necessarily their return values. For example, parseInt("42") and parseFloat("42") would return the same value: a Number 42.

Ou seja:

Em JavaScript não há distinção entre "números de ponto flutuante" e "inteiros" a nível de linguagem. parseInt() e parseFloat() diferem apenas na forma como fazem o parsing, mas não necessariamente nos valores retornados. Por exemplo, parseInt("42") e parseFloat("42") retornam o mesmo valor: um Number cujo valor é 42.

2

Obrigado pela explicação, amigo.

Quis diferenciar os 2 pela questão de utilizar ponto nas casas decimais. Se usar vírgula acaba tendo outro resultado. E como aqui no BR o padrão é utilizar vírgula, achei que valia a pena trazer esse detalhe.

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).

1