JavaScript のオブジェクトがある名前のプロパティをもっているのかどうか調べる方法や、オブジェクトがもっているプロパティの名前の一覧を取得する方法はいくつか種類があって、それぞれどういうものだったかちゃんと覚えてなかったのでまとめてみました。 基本的に data property か accessor property かというのは、プロパティの存在を調べる際やプロパティの名前の一覧を取得する際には関係ないのです。 プロパティの名前一覧を列挙するときには、プロパティが enumerable かどうかというのは関係します。 *1 ECMA-262 5.1 を参照してまとめました。 オブジェクトが指定のプロパティをもっているかどうかの検査 オブジェクトが、指定の名前のプロパティをもっているかどうか調べる方法。 in 演算子 ECMA-262 5.1 - The in operator