2016-04-11 2 views
-4

Ich versuche, ein JavaScript-Objekt des Typs {'foo':123} in localStorage zu speichern und zu laden. Ich habe ein seltsames Verhalten getroffen.Warum für (var i in null_object) geben Sie den Schleifenkörper mehr als Null mal ein?

localStorage .setItem ('names', null); 

alert ("names is:" + localStorage .getItem ('names')); 

for (var n in localStorage .getItem ('names')) 
{ 
    alert ("#" + n + "#"); 
} 

Dies gibt den folgenden Warnungen

names is:null 
#0# 
#1# 
#2# 
#3# 

Sicherlich ist dies nicht geschehen sollte. Ich habe das auf Firefox getestet. Was ist los?

Antwort

3

localStorage kann nur Zeichenfolgen speichern. Das bedeutet, wenn Sie anrufen .setItem():

localStorage.setItem('names', null); 

die null"null" in String umgewandelt wird. Daher ist es das gleiche wie:

localStorage.setItem('names', "null"); 

Das heißt, Sie über Zeichenfolge sind Looping, nicht über null.

Verwandte Themen