Jason. Cała informatyka w jednym miejscu!

Kolejna część z nauki JavaScriptu rozjaśni nieco dokładniej czym jest typ "undefined" w języku JavaScript. JEST istotny powód dlaczego z tak małej rzeczy robię osobny artykuł. Klikaj i o nic nie pytaj!

"UNDEFINED" W JĘZYKU JAVASCRIPT. DEFINICJA O NIEZDEFINIOWANYM...

"undefined". Ten "niezdefiniowany" typ danych możecie znaleźć w języku JavaScript i oznacza on...byt niezdefiniowany czy też nieokreślony. Fajnie. A coś więcej? Jest to domyślny typ dla zmiennych, które nie otrzymały wartości w momencie ich deklaracji. W tym języku to NIE JEST "null" jak niektórzy mogli pomyśleć. To "undefined". To działa jak "null", ale w gruncie rzeczy tym nie jest, choć w rzeczywistości istnieje:

undefined

Ponieważ jest to typ danych, mamy prawo go podstawiać do zmiennych, do instrukcji warunkowych, do całej reszty.

LUBIMY PŁATAĆ FIGLE

Zanim błędnie stwierdzicie, że to koniec najważniejszych informacji o typie "undefined" w języku JavaScript, chcę przekazać coś bardzo ważnego! Otóż możecie natrafić także na drugą tak jakby "odmianę" tego słowa, a mianowicie w postaci łańcucha znaków o takim wyglądzie:

"undefined"

"undefined" w cudzysłowie, a "undefined" bez nich NIE SĄ SOBIE RÓWNE!!! Co więcej, mogą inaczej wpływać na przebieg wykonywania programu! Gdzie konkretnie widać różnicę? Podczas weryfikowania istnienia zmiennej o podanej nazwie wewnątrz instrukcji warunkowej!!!

Spójrzcie na taki przypadek. Chcemy zbadać czy jakaś zmienna istnieje w ogóle kodzie, a konkretniej czy jest niezdefiniowana (jest typu "undefined"). Możemy to zrobić używając dwóch postaci słowa "undefined" w języku JavaScript. Ta "pierwsza" bez cudzysłowów:

console.log(x === undefined);

spowoduje wywalenie programu pod wpływem błędu "ReferenceError", co oznaczać będzie niemożność znalezienia zmiennej o podanej etykiecie. To może się zgadzać z rzeczywistością, tylko niefajnie narażać się na taką awarię tylko dlatego, że zmiennej brak. Jedyną "osłoną" jest deklaracja zmiennej i wtedy nic się nie wyłoży:

let x;

ale głupio tak pisać całą resztę na wyrost. No to wtedy pozostaje Wam użyć tej postaci w cudzysłowach, przy czym korzystamy dodatkowo ze słowa "typeof":

console.log(typeof x === "undefined");

To da taki skutek, że w przypadku nieznalezienia takowej zmiennej, nie stanie się nic złego. Jeżeli podstawimy to do instrukcji warunkowej, wynik stanie się fałszywy, ale obejdzie się bez jakiegokolwiek błędu.

TL;DR: lepiej stosować wersję słowa "undefined" w języku JavaScript w cudzysłowach w połączeniu z "typeof"!

Słowo kluczowe "undefined" w języku JavaScript

"undefined" to niezdefiniowany typ danych przypisywany domyślnie zmiennym pozbawionym jakiejkolwiek wartości.


Teraz jest prawdziwy koniec! JavaScript ma niestety w sobie kilka odstępstw od wielu powszechnie stosowanych języków i trzeba zwracać baczną uwagę czy instrukcje pisane w takim samym stylu działają identycznie co w innym języku, już pozbawionym takich ceregieli.

PODOBNE ARTYKUŁY