特にlocalStorage.foo
Safari の場合、次のように設定されています。
undefined
Firefox の場合、次のように設定されています。
null
Chrome と IE の値を知っている人はいますか?
なぜ違うのですか?ブラウザー プログラマーによるランダムな選択ですか?
特にlocalStorage.foo
Safari の場合、次のように設定されています。
undefined
Firefox の場合、次のように設定されています。
null
Chrome と IE の値を知っている人はいますか?
なぜ違うのですか?ブラウザー プログラマーによるランダムな選択ですか?
いつもundefined
です。おそらく、あなたの観察方法が、ブラウザーによって値が異なると信じるに至った理由でしょう。
ああ、私が知っている限りでは、古いバージョンの IE についてそのステートメントを修飾します。彼らundefined
も使っているに違いない。
ああ、主人公さんが興味深い点を持っています。通常のオブジェクトでは、存在しないプロパティは になりますnull
。ただし、Firefox は実際には、null
特に存在しないプロパティの値として報告しているようですlocalStorage
。うーん...私の投票はそれがバグだということですが、w3c仕様(またはproto-specなど)を確認します。
「値」undefined
は実際には値ではありません。それは仏教のムーに似ています — 「あなたが求めたことは意味がありません」と言っているようなものです. JavaScriptの値null
は、 とは異なる方法で処理されますundefined
。したがって:
var a = {};
var b = a.banana;
変数「b」は になりますundefined
。null
奇妙ですが、プロパティが存在するがプロパティが欠落しているという違いを伝えることができます。(もちろん、in
オペレーターもそれを把握させてくれます。)