308
Rozdział 7.
Ścisły operator równości
Jak ściśle podejść
do zagadnienia równości?
Skoro już wszystkim zebrało się na wyznania, musimy powiedzieć
jeszcze jedno: naprawdę to istnieje nie jeden, lecz
dwa operatory
równości
. Poznałeś już operator
==
(równości), ale istnieje także
operator
===
(nazywany ścisłym operatorem równości).
Dokładnie trzy znaki równości. Możesz używać
===
wszędzie tam,
gdzie stosowałeś
==
, jednak zanim zaczniesz to robić, upewnij się,
że rozumiesz, czym oba te operatory różnią się od siebie.
Już znasz wszystkie skomplikowane reguły konwersji wartości
porównywanych przy użyciu operatora
==
(oczywiście, jeśli są to
wartości różnych typów). W przypadku operatora
===
reguły te są
jeszcze bardziej złożone.
Nie, to był żart. W rzeczywistości w przypadku operatora
===
istnieje
tylko jedna reguła.
Ja bardziej
ściśle podchodzę do
używanych porównań.
Uwaga redakcyjna.
Trzeba się upewnić, że
mamy w aktach zdjęcie
Douga Crockforda.
Dwie wartości są identyczne, jeśli mają ten sam typ
i tę samą wartość
Przeczytaj to jeszcze raz. Oznacza to, że jeśli dwie wartości mają ten sam typ,
zostaną porównane. Jeśli jednak są różnego typu, to niezależnie od wszystkiego
porównanie zwróci
false
— nie będzie żadnych konwersji, żadnych złożonych
reguł porównywania, nic z tych rzeczy. Musisz zapamiętać tylko to, że w przypadku
użycia operatora
===
dwie wartości są równe tylko wtedy, gdy są tego samego typu
i mają tę samą wartość
.
== ===
”42” == 42
”0” == 0
”0” == false
”true” == true
true == (1 == ”1”)
_________
_________
_________
_________
_________
_________
_________
_________
_________
_________
”42” === 42
”0” === 0
”0” === false
”true” === true
true === (1 === ”1”)
Dla każdego z przedstawionych poniżej porównań zapisz wynik
w kolumnach pod operatorem == oraz ===.
Zaostrz ołówek
Podchwytliwe!
Podchwytliwe!
true
Get Programowanie w JavaScript Rusz głową! now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.