0

特にlocalStorage.foo

Safari の場合、次のように設定されています。

undefined

Firefox の場合、次のように設定されています。

null

Chrome と IE の値を知っている人はいますか?

なぜ違うのですか?ブラウザー プログラマーによるランダムな選択ですか?

4

1 に答える 1

6

いつもundefinedです。おそらく、あなたの観察方法が、ブラウザーによって値が異なると信じるに至った理由でしょう。

ああ、私が知っている限りでは、古いバージョンの IE についてそのステートメントを修飾します。彼らundefinedも使っているに違いない。

ああ、主人公さんが興味深い点を持っています。通常のオブジェクトでは、存在しないプロパティは になりますnull。ただし、Firefox は実際には、null特に存在しないプロパティの値として報告しているようですlocalStorage。うーん...私の投票はそれがバグだということですが、w3c仕様(またはproto-specなど)を確認します。

「値」undefinedは実際には値ではありません。それは仏教のムーに似ています — 「あなたが求めたことは意味がありません」と言っているようなものです. JavaScriptの値nullは、 とは異なる方法で処理されますundefined。したがって:

var a = {};
var b = a.banana;

変数「b」は になりますundefinednull奇妙ですが、プロパティが存在するがプロパティが欠落しているという違いを伝えることができます。(もちろん、inオペレーターもそれを把握させてくれます。)

于 2012-07-06T20:58:21.410 に答える