0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

consoleで見るとプロパティが明らかに存在するのにundefinedが返される場合[chrome]

Last updated at Posted at 2021-04-25

###なんで明らかに存在するって断言できるの?

sample.js
    console.log(userData.fav);  //{word:[...]}
    console.log(userData.fav.word); //undefined

あれ...存在しているはずじゃん??

###原因
Chromeのconsoleはどうやらconsoleの▶を開いて詳細を確認しようとした時点での状態を表示するようです。つまり実際にはuserData.favは{}であるのにも関わらず、その0.00001s後にwordプロパティが追加された場合consoleを確認するときにはすでにプロパティが存在しています。
つまり
console.log(userData.fav);を「実行した」とき、プロパティは存在しない。

console.log(userData.fav.word);を「実行した」とき、プロパティは存在しないのでundefinedを返す

開発者がconsoleを開いてconsole.log(userData.fav);の表示結果を「確認する」とき、すでにプロパティwordが追加されたのでconsoleに表示される。

なのでPCがプロパティを追加するのよりも先にconsole画面で表示させれば{}と表示されるはずです。
ちなみに▶をクリックして展開する必要のないundefinedのような文字列は一度表示されたら変更されることはありませんが▶{__ ob __: Observer}のように展開する必要があるものは中身を確認した時点の状態を返すようです。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?