js operator in - ach te internety - Anna Shvets

Operator in w JS

Pogadajmy dziś o magicznym operatorze in. Czemu magicznym? Bo wiele razy o nim słyszałam, ale w praktyce – nigdy go nie widziałam.

Szczypta teorii

Operator in służy do sprawdzenia, czy dany obiekt zawiera określoną właściwość.

Przykład:

const obj = { a: 1, b: 2, c: 3 };
"a" in obj; // true
"d" in obj; // false

const arr = ["one", "two", "three"];
0 in arr; //true 
3 in arr; //false
"one" in arr; //false

Ok, fajnie – powiesz – ale po co w ogóle z niego korzystać? Czym on różni się od składni obj[prop]?

Ekhm, dobre pytanie.

Po co mi to?

Dobrze jest sprawdzać za pomocą operatora in obecność właściwości, które mogą posiadać nieprawdziwe wartości (lub bardziej zrozumiale – po prostu falsy values).

Przypomnijmy sobie podstawowe wartości, które w świecie JS są falsy, czyli konwertują się do false lub są równoznaczne false:

  • false
  • null;
  • NaN;
  • 0;
  • pusty ciąg znaków ("" / '' / ``);
  • undefined.

Dla przykładu – sprawdźmy obecność właściwości o nieprawdziwych wartościach za pomocą składni obj[prop] oraz operatora in:

const obj = { a: undefined, b: "", c: false };

typeof obj["a"] === "undefined"; //true
"a" in obj; // true

obj.b === ""; //true
"b" in obj; // true

obj["c"] === false //true
"c" in obj; //true

Widzimy teraz, że operator in wydaje się być najbardziej bezpieczną, uniwersalną metodą na sprawdzanie właściwości o nieprawdziwych wartościach.

Uwaga!

Kiedy korzystasz z operatora in, bądź czujny w przypadku usuwania wartości! Pamiętaj – aby je skutecznie usunąć, musisz użyć operatora delete.

const obj = { a: 1 };
"a" in obj; // true
delete obj.a;
"a" in obj; // false

const arr = ["one", "two", "three"];
1 in arr; //true
delete arr[1];
1 in arr; //false

A teraz powiedz szczerze – znałeś wcześniej operator in? Czy go stosowałeś w praktyce? Koniecznie napisz mi w komentarzu odpowiedzi na te pytania. Jestem szalenie ciekawa, ilu z Was odpowie na oba pytania TAK!

Artykuły, które mogą Ci się spodobać...

Wpisz hasło, którego szukasz i naciśnij ENTER, aby je wyszukać. Naciśnij ESC, aby anulować.

Dawaj na górę