Wpis z mikrobloga

Załóżmy że mamy w JavaScript takie zmienne:

var zmienna1;
var zmienna2 = null;

zmienna1 to po prostu zmienna niezdefiniowana (undefinded). A jak do zmiennej jest przypisana wartość null, to co to jest? Że zmienna jest "pusta"? Ale jeżeli jest pusta, to czym się różni od zmiennej niezdefiniowanej?

#javascript #naukaprogramowania #webdev
  • 10
  • Odpowiedz
@MozeSuker: To tłumaczenie teoretyczne. Czyli z praktycznego punktu widzenia obydwie zmienną są, że to tak ujmę, takie same? xD

btw a ta pusta wartość to coś jest? Do czegoś służy?
  • Odpowiedz
@maciorqa zmienna1 jest zadeklarowana, ale nie ma wartości, jest pusta. zmienna2 ma wartość i tą wartością jest null.

null ma tę przewagę, że wskazujesz nim że ta zmienna bez wątpienia miała nie mieć żadnej konkretnej wartości. Jak nie ustawisz nic (albo wprost ustawisz undefined) to nie jesteś w stanie rozróżnić, czy to undefined jest tam celowo, czy po prostu komuś się zapomniało, albo czy pomyliłeś nazwę property w obiekcie
  • Odpowiedz
@PrawyKuba nie, null to null, typeof null === 'object'

@maciorqa natomiast typeof undefined === 'undefined'

undefined to typ w javascripcie który może mieć tylko jedną wartość: undefined

podczas gdy null jest obiektem, można po nim dziedziczyć https://stackoverflow.com/a/41203511/1732775
JavaScript jest specyficzny, null istnieje chyba tylko dlatego że ten język był inspirowany Javą i IMO więcej z nim problemów niż pożytków, bo przecież JS ma już jeden pusty typ, a użycie null powinno być
  • Odpowiedz
@tlaziuk: przecież nie napisałem, że null === undefined, tylko, że w nullu wskazujesz explicite wartość pustą, gdzie undefined możesz np dostac kiedy odwolujesz się do propsa w obiekcie który nie istnieje.
  • Odpowiedz