#7DaysOfCode - JavaScript

Dia 1: Operadores

Ativar o console do navegador para ver os resultados dos testes.

Problema

Problema de comparação de duas Variáveis com tipos diferentes

console.log( false == '0' );

console.log( null == undefined );

console.log( " \t\r\n" == 0 );

console.log( ' ' == 0 );

Todos retornam true.

Tarefa

Reescrever o código abaixo de maneira que ele imprima as informações de maneira correta, que faça sentido e sem erros:

let numeroUm = 1

let stringUm = '1'

let numeroTrinta = 30

let stringTrinta = '30'

let numeroDez = 10

let stringDez = '10'


if (COMPARAR O numeroUm e a stringUm) {

console.log('As variáveis numeroUm e stringUm tem o mesmo valor, mas tipos diferentes')

} else {

console.log('As variáveis numeroUm e stringUm não tem o mesmo valor')

}


if (COMPARAR O numeroTrinta e a stringTrinta) {

console.log('As variáveis numeroTrinta e stringTrinta tem o mesmo valor e mesmo tipo')

} else {

console.log('As variáveis numeroTrinta e stringTrinta não tem o mesmo tipo')

}


if (COMPARAR O numeroDez e a stringDez) {

console.log('As variáveis numeroDez e stringDez tem o mesmo valor, mas tipos diferentes')

} else {

console.log('As variáveis numeroDez e stringDez não tem o mesmo valor')

}

Resolução

A questão está no tipo de operador lógico. Usar o comparador '==' compara apenas os valores das variáveis, enquanto o operador '===' compara o valor E o tipo de dado.


if (numeroUm == stringUm) {

console.log('As variáveis numeroUm e stringUm tem o mesmo valor, mas tipos diferentes')

} else {

console.log('As variáveis numeroUm e stringUm não tem o mesmo valor')

}


if (numeroTrinta === stringTrinta) {

console.log('As variáveis numeroTrinta e stringTrinta tem o mesmo valor e mesmo tipo')

} else {

console.log('As variáveis numeroTrinta e stringTrinta não tem o mesmo tipo')

}


if (numeroDez == stringDez) {

console.log('As variáveis numeroDez e stringDez tem o mesmo valor, mas tipos diferentes')

} else {

console.log('As variáveis numeroDez e stringDez não tem o mesmo valor')

}