JS는 반복문이 좀 어려운 편이라고 함(그런가..자바가 더 어려운거같은데)
반복문 쓰는 이유
1.코드 여러번 실행할 때
2.자료 꺼내쓸 때
for/while 말고도
forEach - Array 전용
for in - object에 있던 값을 전부 하나씩 꺼내서 사용 할 때
let obj = {A : 1 , B : 2}
for (let key in obj) {
console.log(key)}
// A B
key라고 변수설정해서 key값 나오는게 아니라 그냥 뭘넣던 key값이 나옴
value를 뽑고싶으면 obj[key] 해주면됨 *obj.key는 안됨
enumerable한 것만 가능함 - obj.getOwnPropertyDescriptor(obj,'A') 하게 되면 3가지 특성이 더 나오는데 , 여기에
enumerable : true라고 있어야 가능 (셀 수 있는지 여부 알려주는건데 깊이 알필요는 없음)
부모의 prototype도 반복해줌 - 쓸데 없음
class 부모 { }
부모.property.name = 'lee'
let obj = new 부모( ); // 이렇게 하면 새 오브젝트 만들어짐
이걸 for in 돌리면 property로 지정된것까지 같이 출력됨 - 굳이 이것까지 반복시키는 경우는 별로 없음
이게 싫으면 if (obj.hasOwnProperty(key){
console.log(key) } 이런식으로 저 조건이 true면 뒤에 반복문 돌려라 이런식으로 설정을 해줘야됨
보통 Object 자료형에만 씀
for of - array , 문자 , arguments, NodeList , Map , Set 다 가능
let Arr = [1,2,3,4,5]
for (let A Arr) {
console.log(A) } // 이렇게 해주면 forEach 해서 콜백함수 만들고 이런거랑 똑같은 역할 가능
문자열도 가능함
*Iterable한 자료형만 사용 가능
Arr[Symbol.iterator]() // Array Iterator 라고 나오는데 내부 데이터 출력을 도와주는 함수같은거임
예시로 들었던 저런것들에는 다 이게 내장되어 있음
NodeList - document.querySelectorAll 이런거 하면 해당 html 태그가 [ ] 안에 넣어서 나오는데 이게 NodeList
'JS' 카테고리의 다른 글
JS 복습 (0) | 2022.11.21 |
---|---|
Symbol 자료형 (0) | 2022.11.16 |
자바스크립트 동기 처리 / promise 문법 (0) | 2022.10.14 |
자바스크립트로 점수판 만들기 (0) | 2022.10.12 |
.includes랑 정규식(regular expression)으로 문자검사하기 (0) | 2022.10.11 |