Operador in

O operador in verifica se existe uma propriedade em um objeto ou array e retorna true ou false.

Sintaxe

javascript'propriedade' in objeto;

Exemplo

Vamos ver como funciona o operador in:

javascriptlet obj = {
  name: 'Nick',
  age:  23,
};

console.log('name' in obj); // true
console.log('age'  in obj); // true
console.log('test' in obj); // false

Exemplo

Vamos ver como podemos aplicar o operador in para verificar uma propriedade em um array:

javascriptlet arr = ['green', 'red', 'blue', 'pink']

console.log(0 in arr); // true, existe um elemento com este índice
console.log(4 in arr); // false, não existe elemento com este índice
console.log('four' in arr); // false, é necessário o índice, não o valor do elemento
console.log('length' in arr); // true, o array tem esta propriedade

Exemplo

Frequentemente, em vez de in, verificam se a propriedade em contexto lógico é true:

javascriptlet obj = {
  name: 'John',
  height: '177',
};

if ('name' in obj) {} // verificação na condição com in
if (obj.name) {} // mas geralmente escrevem assim

Ambas as opções podem ser usadas. Mas sempre devemos lembrar que string vazia, 0, null, NaN e undefined em contexto lógico são false. Consequentemente, se a propriedade pode ter um valor similar - devemos usar in.