2016-04-11 15 views
-4

localstorageに{'foo':123}タイプのJavaScriptオブジェクトを保存してロードしようとしています。私は奇妙な行動を起こした。for(null_objectのvar i)はなぜループボディに0回以上入力しますか?

localStorage .setItem ('names', null); 

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

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

これは、次の警告に

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

確かにこれは起こるべきではありませんを提供します。私はFirefoxでこれをテストしました。どうしたの?

答えて

3

localStorageは、文字列のみを格納できます。あなたが.setItem()を呼び出しているときには意味:

localStorage.setItem('names', null); 

nullが文字列"null"に変換されます。あなたは、文字列の上にないnull上をループしていることを意味し

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

:したがって、それは同じです。

関連する問題