TIL: javascript - Object.keys()

Object.keys() 메서드는 개체 고유의 열거형(enumerable) 속성들을 for ...in 루프에 의해 제공되는 순서와 동일한 순서로 리턴한다.

for ...in 루프는 프로토타입 체인을 통하여 프로퍼티를 나열한다는 점에서 차이점이 있다.

var arr = ['a', 'b', 'c'];
console.log(Object.keys(arr)); // console: ['0', '1', '2']

// array like object
var obj = { 0: 'a', 1: 'b', 2: 'c' };
console.log(Object.keys(obj)); // console: ['0', '1', '2']

// array like object with random key ordering
var anObj = { 100: 'a', 2: 'b', 7: 'c' };
console.log(Object.keys(anObj)); // ['2', '7', '100']

// getFoo is property which isn't enumerable
var myObj = Object.create({}, {
  getFoo: {
    value: function () { return this.foo; }
  }
});
myObj.foo = 1;
console.log(Object.keys(myObj)); // console: ['foo']

여기서 객체로 불러왔을 때의 부분이 이해가 안감 ㅠㅠㅠㅠ