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 |
---|