Operátor in

Operátor in kontroluje, zda existuje vlastnost u objektu nebo pole a vrací true nebo false.

Syntaxe

javascript'vlastnost' in objekt;

Příklad

Podívejme se, jak operátor in funguje:

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

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

Příklad

Podívejme se, jak lze použít operátor in pro kontrolu vlastnosti v poli:

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

console.log(0 in arr); // true, existuje prvek s tímto indexem
console.log(4 in arr); // false, neexistuje prvek s tímto indexem 
console.log('four' in arr); // false, je potřeba index, ne hodnota prvku
console.log('length' in arr); // true, pole má tuto vlastnost 

Příklad

Často místo in kontrolují, zda je vlastnost v logickém kontextu - true:

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

if ('name' in obj) {} // kontrola v podmínce s in
if (obj.name) {} // ale častěji píší takto

Lze použít obě varianty. Ale vždy je třeba mít na paměti, že prázdný řetězec, 0, null, NaN a undefined v logickém kontextu - false. Proto pokud vlastnost může mít podobnou hodnotu - měl by se použít in.