forEach
, for in
, for of
주로 자료 뽑는 데 사용된다.
- forEach : array
- for in : object
- for of : iterable 속성 가진 객체에 사용
object
내 자료들 출력하고 싶을 때 사용한다.
var obj = { name: 'Kim', age: 30 }
for (var key in obj) {
console.log(obj[key])
}
object
등, enumerable
객체에만 사용 가능
enumerable?
열거 가능한 객체. 여러 자료를 가지고 있는 객체. iterable과는 달리 자료의 순서는 없다.
자신이 직접 속성을 가지고 있지 않아도, 부모 prototype으로 출력 가능하다.
class parent1 {}
parent1.prototype.name = "Park" // 위 class에 prototype 부여
var obj2 = new parent1();
for (var key in obj2) {
console.log(obj2[key]
}
}
// 결과 : 콘솔에 'name', 'kim' 출력
// obj2는 속성을 가지고 있지 않으나, 부모class인 parent1의 속성을 받아 출력 가능
c.f. 해당 객체가 직접 가지고 있는 속성만을 출력하려면
for (var key in obj2) {
if (obj2.hasOwnProperty(key)) { // obj가 직접 속성 가지고 있는가?
console.log(obj2[key])
}
}
Array등 iterable 객체
내 자료들을 출력하고 싶을 때 사용한다.
var arr = [2,3,4,5]
for (var unit of arr){
console.log(unit)
}
Array
, String
, arguments
, NodeList
, Map
, Set
for (var unit of 'dsfddsfdf') {
console.log(unit)
}
그룹선택자
document.getElementsByClassName()이나 document.querySelectorAll() 등...)
var arr = [2, 3, 4, 5]
arr[Symbol.iterator]();