Operator in

Operator in proverava da li svojstvo postoji na objektu ili nizu i vraća true ili false.

Sintaksa

javascript'svojstvo' in objekat;

Primer

Pogledajmo kako operator in radi:

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

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

Primer

Pogledajmo kako se operator in može primeniti za proveru svojstva u nizu:

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

console.log(0 in arr); // true, postoji element sa tim indeksom
console.log(4 in arr); // false, ne postoji element sa tim indeksom 
console.log('four' in arr); // false, potreban je indeks, a ne vrednost elementa
console.log('length' in arr); // true, niz ima to svojstvo 

Primer

Često umesto in proveravaju da li je svojstvo u logičkom kontekstu - true:

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

if ('name' in obj) {} // provera u uslovu sa in
if (obj.name) {} // ali češće pišu ovako

Oba varijanta se mogu koristiti. Ali uvek treba imati na umu da su prazan string, 0, null, NaN i undefined u logičkom kontekstu - false. Prema tome, ako svojstvo može imati sličnu vrednost - treba koristiti in.