Nonzero Numbers pt-br Explainer

Explicação de Números diferentes de zero

Objetivo do desafio: Introduzir o conceito de Truthy e Falsy

Passo a passo da solução: O teste de uma if statement é sempre true ou false. Por exemplo:


let x = 3

if (x === 3) {

console.log('true!')

}

Este código será impresso 'true!'porque x é igual a 3.

Entretanto, e se o criarmos da seguinte maneira?


let x = 3

if (x) {

console.log('true!')

}

Esse código também será impresso 'true!'. Estranho!

Esse código funciona porque todo valor em JavaScript ou é “truthy” ou “falsy”.

Parece confuso, mas é um pouco mais simples do que parece.

Existem apenas 6 valores falsy no JavaScript. Todo o resto é truthy. Os 6 valores falsy são:

  1. false: o valor booleano false

  2. 0: o número 0

  3. '': Uma string vazia

  4. NaN: que significa “Não um número” e é causado normalmente por erros matemáticos

  5. undefined: o valor de uma variável antes de ser atribuído um valor a ela

  6. null: um valor em branco que pode ser atribuído a uma variável

Neste desafio, um laço for clássico é criado com i inicialmente configurado em 0 - 3 (essa é uma alternativa para a maioria dos teclados de telefones celulares que não permitem aos usuários inserir números negativos). O laço será tão longo quanto i < 4 e i será incrementado por 1 em cada iteração.

Dentro do laço for, uma if statement testa i. Se i tem um valor truthy, o console.log() imprimirá i. Se i tem um valor falsy, ele não será impresso.

Quando o código for executado, todos os números de -3 a 3 exceto 0 serão impressos no console.

Solução do código de exemplo:


for (let i = 0 - 3; i < 4; i++) {

if (i) {

console.log(i);

}

}

Conceitos de JavaScript: Truthy e Falsy, If Statements, Booleanos, console.log(), Laço for

4 Likes

na barra de ferramenta não tenho os códigos que preciso, tipo sinal de === ,“true” .
será que é algum bug?
se alguém poder me ajuda vlw.

Não tem os códigos que preciso para concluir o exercício…os códigos que estão na barra de ferramentas não são suficientes… preciso de uma If…alse e não tem

Vc não precisa usar um If… Else…, Apenas o If resolve.

O código fica assim:

for (let i = 0 - 3 ; i < 4 ; i ++) {
if ( i ) {
console.log ( i ) ;
}
}

1 Like

Vlw :+1:t4: muito obrigado… não estava entendendo .

1 Like

Isso aqui resolve.

Eu passei no exercício de forma diferente, E o app aceitou minha solução como certo, porem nao imprimi nenhum numero, como é possivel ? Seria algum bug?
O meu ficou assim.

If(i)
Let i = null
Console.log(i)

Funciona mas nao imprime nenhum numero.

O If vai testar se é true ou false, e o código de comando dele é um console.log(), o 0 é false, por isso todos os números de -3 a 3 com exceção do 0 são impressos no console, porque todos com exceção dele são true.

meu resultado está certo, eu usei um método diferente do que a questão pede, mas ele não aceita. Tentarei fazer da forma da resolução pra ver

i já recebeu zero no laço for, basta verificar se i então mostrar os Elementos.