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.

JavaScript オブジェクトのメンバ名一覧に「Object.keys( obj )」を使うのは古いらしい

Last updated at Posted at 2020-11-03

JavaScript メモ

オブジェクトのメンバ名一覧表示するコード

const obj = {
  hu: 0,
  ji: 1,
  ko: 2,
  lp: 3
}

// 少し前の記憶だと、オブジェクトのメンバ一覧は、こう書いていた、、、
for ( const k of Object.keys( obj ) )
    console.log( k )

// いつのまにか、以下のように in で短く書けるようになっていた、、、
for ( const k in obj )
    console.log( k )

すなわち、Object.keys( obj )の出番は無くなった、ということ。

いつのまに。

ってか、なんでわざわざObject.keys( obj )を使っていたんだろう?? for-in って、サポートされたのいつだっけ?

知らなかった。また、ひとつ賢くなった。

そういえば、forEach() も使わなくなったよね。

追記:
「いや、for-in のほうが古いよ」 というコメントをいただき、調べてみたら、たしかにそうでした。なんで、知らなかったの?>俺

以上。「ちゃんと勉強しろよな>俺」なエントリでした。

ちなみに、「forconst を省略しても動くじゃん。めんどいし、見にくいから、すっきり書こうよ」って思っているひとへ。

省略すると var 扱いになるので kのスコープが広くなり、危険度が上昇します(少しだけどね)。

for ( k in obj )
    console.log( k )

console.log( k ) // const ありならエラーになるが、省略すると、、、、見えちゃう

趣味で書き捨てる短いコードなら、まぁいいけど、、癖がついて仕事で使っちゃうとヤバイので、プロなひとは省略不可!ってことで。

省略したら、const扱いにしてほしかったなぁ、、、(ぼそり

0
0
2

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?