Web/JavaScript

[Javascript] for of, for in에 대해... 주의사항.

Binceline 2017. 2. 26. 04:25


let r = [

    {name:'tera', phone:'01026'},

    {name:'phonia', phone:'123456'}

  ];


이런 코드가 있다고 해 보자...


오늘 코딩하다가 당황스러워서 찾아보게 되었다.


다음 코드를 보면..


for (let i in r) {

  console.log(i);

}


// result

0

1


for (let i of r) {

  console.log(i);

}


// result

{ name: 'tera', phone: '01026' }

{ name: 'phonia', phone: '123456' }


난 for in이(for of라는 게 있는줄도 몰랐당..ㅎㅎ) 무조건 그 원소들을 순회한다 생각했는데, 


그게 아니더라...


for in은 일반 Object의 속성(그것이 key이기도 하고 문자열임)을 순회한다


...그리고 임의의 순서대로 순회한다.


문서 : https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for...in




for of문은 오직 그 원소를 순회한다.


문서 : https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for...of



이 예제를 보면 더더더 자세한 차이를 알 수 있다.


for in은 모든 속성을 순회하고, 


for of는 원소를 순회한다.


그러니까 


for in은 Object 쓰고,


for of는 Array에 쓰자..


어차피 for of를 object에 쓰면 에러난다..


잘 쓰자..

반응형

'Web > JavaScript' 카테고리의 다른 글

[JS] use strict 사용으로 dynamic typing 금지시키기  (0) 2017.02.08