Descubra como Verificar Propriedades de Objetos
Se você programa em JavaScript, já deve ter se deparado com situações onde precisava saber se uma determinada propriedade existe em um objeto, e é aí que entra o operador in
. Vou te mostrar como ele funciona, como utilizá-lo e por que ele pode ser mais eficiente do que outras formas de verificar propriedades em um objeto.
O que é o operador in
?
O operador in
é utilizado no JavaScript para verificar se uma propriedade existe em um objeto. O legal é que ele não só verifica as propriedades diretamente definidas no objeto, mas também aquelas herdadas dos protótipos.
A sintaxe é bem simples:
'propriedade' in objeto;
Se a propriedade existir, ele retorna true
e se não existir, false
. Parece simples, né? Mas a utilidade dele vai além de uma simples checagem. Bora ver alguns exemplos?
Exemplo 1: Propriedade Direta no Objeto
Pra começar, vamos ver um exemplo básico de uso do operador in
verificando uma propriedade direta.
const carro = {
marca: 'Toyota',
ano: 2020
};
console.log('marca' in carro); // true
console.log('modelo' in carro); // false
Aqui, temos um objeto carro
com as propriedades marca
e ano
. Quando usamos 'marca' in carro
, o resultado é true
, pois a propriedade marca
existe diretamente no objeto. Já 'modelo' in carro
retorna false
, já que essa propriedade não foi definida.
Esse tipo de verificação é ótimo para evitar erros ao tentar acessar propriedades que não existem. Já tentou acessar uma propriedade inexistente e quebrou o código? Eu já! 😅
Exemplo 2: Propriedades Herdadas do Protótipo
Agora, olha só como o operador in
também detecta propriedades herdadas do protótipo
const pessoa = {
nome: 'Ana'
};
console.log('toString' in pessoa); // true
Nesse caso, o objeto pessoa
não tem a propriedade toString
diretamente, mas essa função é herdada de Object.prototype
. O operador in
consegue enxergar isso e retorna true
.
Por que isso é útil?
As vezes você pode querer verificar se alguma funcionalidade herdada está disponível no objeto. Isso pode te salvar em algumas situações mais complexas.
Exemplo 3: Comparando com hasOwnProperty
Agora vamos fazer uma comparação com outra maneira de verificar propriedades, o método hasOwnProperty
. Ele só verifica se a propriedade foi definida diretamente no objeto ignorando as herdadas.
const pessoa = {
nome: 'Ana'
};
console.log(pessoa.hasOwnProperty('toString')); // false
console.log('toString' in pessoa); // true
O método hasOwnProperty
retorna false
para toString
, já que essa propriedade não está diretamente no objeto pessoa
. Enquanto isso, o operador in
retorna true
, pois ele considera também as propriedades herdadas.
Quando usar in
e quando usar hasOwnProperty
?
A resposta é a mais falada quando se pergunta qualquer coisa para um desenvolvedor sênior, depende.
- Use
in
se você quer verificar qualquer propriedade, seja ela direta ou herdada. - Use
hasOwnProperty
se você precisa garantir que a propriedade foi definida diretamente no objeto, ignorando as herdadas do protótipo. O operadorin
é bem mais prático quando você não precisa se preocupar com a origem da propriedade, mas ambos tem seu lugar no parquinho então basta saber em qual lugar e qual a finalidade você precisa.
Top comments (0)