Warum ist localStorage["..."] nicht definiert, aber "localStorage".getItem("...") null ist?

Letzte mal habe ich geprüft, die folgenden zwei Zeilen zurückgegeben true:

null == localStorage["foo"];
null == localStorage.getItem("foo");

Gleiche gilt beim Austausch null mit undefined.
Also die erste Frage ist, warum gibt es zwei Möglichkeiten, um das localStorage? Und warum

localStorage["foo"]

zurück undefined während

localStorage.getItem("foo")

zurück null?

Muss ich aufpassen, dass bei der Entwicklung von JS?

  • Ah, die Freuden von Javascript.
  • die Sprache ist in Ordnung, es ist die Umsetzung Variationen, die es töten 🙁
  • Natürlich, ob es zurück undefined oder null, wirst du immer noch mit ihm zu beschäftigen. Warum nicht einfach überprüfen, für beide? Siehe auch programmers.stackexchange.com/a/268125
  • Ich würde das tun, wenn nötig, aber ich möchte vermeiden unnötige Gemeinkosten, die warum-Fragen wie diese die mich stören. Wenn etwas unbestimmtes gibt immer true wenn geprüft gegen null, warum sollte ich (zusätzlich) überprüfen, ob es undefiniert?
  • Sehen muchweb die Antwort von unten. Überprüfen Sie auch, ob der link, den ich oben gepostet; mit == mit null prüft auch, ob undefined.
InformationsquelleAutor jaySon | 2015-04-08
Schreibe einen Kommentar