jesteś tutaj
303
Typy, równość, konwersje i cały ten jazz
Musimy coś wyznać
Jest pewien aspekt języka JavaScript, którego specjalnie jeszcze
nie przedstawialiśmy. Mogliśmy, co prawda, powiedzieć Ci
o tym od razu, jednak opisanie go teraz było bardziej sensowne.
Nie chodzi o to, że próbowaliśmy zamydlić Ci oczy, a raczej
o to, że nie pisaliśmy o wszystkim. A o co właściwie chodzi?
Spójrz na poniższy przykład.
var testMe = 99;
if (testMe == 99) {
// wszystko jest w porzÈdku
}
W pewnym momencie zostaje określona
wartość zmiennej, w tym przypadku
przypisujemy jej liczbę 99.
A później w wyrażeniu warunkowym
zmienna jest porównywana
z wartością.
Banalne, nieprawdaż? No pewnie, nie wyobrażamy sobie niczego
prostszego. Jednak jest coś, co zrobiliśmy przynajmniej raz we
wcześniejszej części książki i czego, być może, nie zauważyłeś.
Chodzi mianowicie o kod, taki jak pokazany poniżej.
var testMe = ”99”;
if (testMe == 99) {
// wszystko jest w porzÈdku
}
W pewnym momencie zostaje określona
wartość zmiennej, w tym przypadku
przypisujemy jej łańcuch znaków „99”.
A później w wyrażeniu warunkowym
zmienna jest porównywana
z wartością.
Czy wspomnieliśmy,
że tym razem używamy
łańcucha znaków?
Tym razem porównujemy
łańcuch znaków z liczbą.
A zatem, co się dzieje, kiedy porównujemy liczbę z łańcuchem znaków?
Kompletny chaos? Stopienie procesora? Zamieszki na ulicach?
Nie. JavaScript jest na tyle zmyślny, by określić, że do wszystkich
praktycznych zastosowań
99
i
”99”
są sobie równe. Co jednak się dzieje
za kulisami, by takie zachowanie było możliwe? Zobaczmy…
CELNE
S SPOSTRZEŻENIA
Krótkie przypomnienie dotyczące
różnicy pomiędzy przypisaniem
i sprawdzeniem równości.
Q
var x = 99;
Znak równości (=) jest operatorem
przypisania. Służy on do
przypisywania wartości zmiennej.
Q
x == 99
Dwa znaki równości (==) to
operator porównania, a konkretnie
— równości. Służy on do
sprawdzania, czy jedna wartość
jest równa drugiej.

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.