[TIPOS DE DADOS - JavaScript] Leia e Nunca Mais Tenha Dificuldades.
Tipo de Dados em JavaScript
Há uma grande dificuldade para os iniciantes assim como quem ja tem muita experiencia com JS quando o assunto é Tipos de Dados pois como é sabido o JavaScript é uma linguagem com a tipagem muito fraca (em outras palavras no JS não precisamos de declarar o tipo) e ate outros chegam a dizer que o JS não é uma linguagem tipada.
Mas é ai onde muitos se enganam no JavaScript a atribuição do tipo da variável acontece dinamicamente o que significa que ela tem uma Tipagem Dinámica, basta criar a variável e declarar o seu valor que a linguagem define o tipo de dados, se é uma string(caracteres),number(número),boolean(lógico) ou undefined(não definido) entres outros.
let texto = 'JavaScript'
let numero = 1;
let naodefinido;
let logico = true;
console.log(typeof texto) // saida mostra que é uma: string
console.log(typeof numero) // saida mostra que é um: number
console.log(typeof naodefinido) // saida mostra que é um: undefined
console.log(typeof logico) // saida mostra que é um: boolean
No código acima temos a criação de variaveis e depois usamos uma função do proprio JavaScript que é o typeof
que nos retorna o tipos da variavel que foi passada como parametro no nosso console.log()
, sendo assim as suas saidas (string,number,undefined,boolean). E com isso da para intender que a atribuição de tipo foi reconhecido de forma dinámica pelo JavaScript.
Mas onda há vantagem sempre há uma Desvantagem, alem dessa tipagem dinámica facilitar o muitos desenvolvedores, essa Tipagem Dinámica tem sido uma grande fonte de vários Bugs para iniciantes assim como para experientes. Mas eu tou aqui para ajudar voce com isso nas proximas linhas eu vou te dar uma estrutura poderosa que ajudará muito na sua caminhada. Mas para isso voce tem que saber a diferença desses Dois operadores ==, ===
, então vamos...
DIFERENÇA ENTRE DOIS OPERADORES IMPORTANTES (== E ===)
Em JavaScript temos esses dois operadores que o primeiro é o (igual a, ==) e o segundo temos o (identico a ===). E ai vem a pergunta qual devo utilizar para cada situação.
Vamos iniçiar com o opredor de Igualdade (=) => ele nos diz que comparando dois valores ele sera verdade se o primeiro valor for igual ao segundo valor. Vejamos um exemplo.
javaScript == 'javaScript' // retorna true(verdade)
10 == '10' // retorna true(verdade)
10 == 10 // retorna true(verdade)
Com isso conseguimos compreender que com o operador de igualdade (=) não importa o tipo basta que os valores sejam iguais.
Mas vamos supor que voce quer validar tanto o valor assim como o tipo de cada um e ai onde o nosso operador de identidade entra (===) => ela diz que que so é verdade se o o primeiro valor é igual ao segundo e se o tipo de dados do primeiro valor é igual ao tipo de dados do segundo valor... vamos para o exemplo:
javaScript === 'javaScript' // retorna false(falso)
10 === '10' // retorna false(falso)
10 === 10 // retorna true(verdade)
Veja que no primeiro e segundo exemplo deu falso, mais ai voce pergunta mais como se quando usamos o operador de igual a (==) os dois primeiro exemplos deram verdade.
E eu respondo porque quando usamos o operador de identico a (===) ele tem que satisfazer duas condições ser do mesmo tipo e ter o mesmo valor, e no operador de igual (==) ele so verifica se o valor é igual ao outro mas não se tem o mesmo tipo.
E o terceiro exemplo deu verdade porque poque ele é do mesmo tipo que é number e os dois tem o mesmo valor que é 10.
Agora que voce entendeu a diferença desses dois operadores vamos para estrutura poderosa...
#ESTRUTURA PODEROSA Vamos iniciar como o mais basico vamos supor que voce quer verificar se eles são somente iguais. Então criar duas variaveis um de string e outra number.
01
const texto = '10';
const numero = 10;
if(texto == numero) {
console.log('As variáveis texto e numero tem o mesmo valor, mas tipos diferentes');
} else {
console.log('As variáveis texto e numero não tem o mesmo valor')
}
02
const texto = 10;
const numero = 10;
if(texto === numero) {
console.log('As variáveis texto e numero tem o mesmo valor e o mesmo tipo');
} else {
console.log('As variáveis texto e numero não tem o mesmo tipo');
}
Crie essa publicação porque vejo essa dificuldade em muitos dos iniciantes e experiente tambem espero que esta publicação sirva para ajudar muitos... então não esqueça de contribuir tambem.
Se você gostou desse conteúdo deixe o seu comentário abaixo e se tiver mais algo em falta contribua... ate mais.
Sobre tipagem, recomendo ler este post (e também os links indicados), que explica em detalhes as diferentes formas de tipagem (dinâmica, estática, fraca e forte).
Eu só não entendi a parte onde vc sugere que até alguem com muita experiência em JS pode ter dificuldade com isso. Me desculpe, mas se a pessoa tiver dificuldade com esse conteúdo que vc passou não tem como ela ter muita experiência. Isso é muito básico.. :D