#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')
}