πŸ–₯οΈν”„λ‘ νŠΈμ—”λ“œ/HTML | CSS | JAVASCRIPT

μžλ°”μŠ€ν¬λ¦½νŠΈ - for inκ³Ό for of 차이점

Janger 2022. 7. 30. 01:44
728x90

 

μƒκΉ€μƒˆ

 

var arr = [2, 5, 7, 9, 12];

// for in
for(const item in arr){
	console.log(item);
}

// for of
for(const item of arr){
	console.log(item)
}

μƒκΉ€μƒˆλŠ” μ΄λ ‡κ²Œ μƒκ²ΌμŠ΅λ‹ˆλ‹€. 

 

λ‘˜ λ‹€ λ„ˆλ¬΄ λ˜‘κ°™μ΄ μƒκ²¨μ„œ 가끔 μ‚¬μš©ν•˜λ €κ³  ν•  λ•Œλ§ˆλ‹€ ν˜Όλž€μ΄ μƒκΉλ‹ˆλ‹€. 

μ§€κΈˆλΆ€ν„° 이런 μ‹μœΌλ‘œ μ™Έμš°μ‹œλ©΄ λ©λ‹ˆλ‹€. 

 

for in은 객체(ν‚€ κ°’) μˆœν™˜

for of은 λ°°μ—΄ μˆœν™˜

 

참고둜 상단 μ½”λ“œμ˜ μ‹€ν–‰ κ²°κ³ΌλŠ” μ΄λ ‡μŠ΅λ‹ˆλ‹€. 

// for in
0 1 2 3 4

// for of
2 5 7 9 12

for ofλŠ” λ°°μ—΄μ˜ 값을 μˆœμ„œλŒ€λ‘œ 잘 좜λ ₯ν•˜λŠ” λ°˜λ©΄μ— for in은 0, 1, 2, 3 같은 숫자의 μˆœν™˜μ„ λ°˜ν™˜ν•©λ‹ˆλ‹€. 

λ°”λ‘œ 눈치챈 μ‚¬λžŒλ„ μžˆκ² μ§€λ§Œ μ € μˆ«μžλ“€μ€ index이며 즉 λ°°μ—΄μ˜ ν‚€ 값듀을 λ¦¬ν„΄ν•œ κ²ƒμž…λ‹ˆλ‹€.. 

 

 

배열도 객체이기 λ•Œλ¬Έμ— ν‚€ 값인 0, 1, 2, 3... 등을 λ°˜ν™˜ν•œ κ²ƒμž…λ‹ˆλ‹€. 

 

λ‹€λ₯Έ 객체 μ˜ˆμ‹œλ₯Ό μ‚΄νŽ΄λ³΄λ©΄

const object = { a: 1, b: 2, c: 3 };

for (const property in object) {
  console.log(`${property}: ${object[property]}`);
}

이런 ν˜•νƒœμ˜ 객체λ₯Ό for in을 ν†΅ν•΄μ„œ 좜λ ₯ν•˜κ²Œ 되면 

 

"a: 1"
"b: 2"
"c: 3"

λ§ˆμ°¬κ°€μ§€λ‘œ ν‚€ 값을 가져와 μ°Έμ‘°ν•˜κΈ° λ•Œλ¬Έμ— λ°°μ—΄μ˜ λ‚΄μš©μ„ ν•¨κ»˜ 좜λ ₯이 λ©λ‹ˆλ‹€. 

 

 

 

 

reference: 

https://velog.io/@eomttt/for-...in-for-...of-%EC%B0%A8%EC%9D%B4

 

for ...in, for ...of 차이

자주 ν—·κ°ˆλ¦¬λŠ”κ²Œ μžˆμ–΄μ„œ ν•œλ²ˆ ν¬μŠ€νŒ…ν•΄λ΄…λ‹ˆλ‹€.λ°”λ‘œ 반볡문 쀑에 ES6 λΆ€ν„° μΆ”κ°€ 된for ...infor ...ofμž…λ‹ˆλ‹€.λ‘˜λ‹€ 반볡문으둜 μ‚¬μš© λ˜λŠ”λ°μš” ν•˜λ‚˜λŠ” 객체λ₯Ό νƒμƒ‰ν•˜κ³  λ‚˜λ¨Έμ§€ ν•˜λ‚˜λŠ” λ°°μ—΄ μš”μ†Œλ₯Ό 탐색

velog.io

https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Statements/for...in

 

for...in - JavaScript | MDN

for...in문은 μƒμ†λœ μ—΄κ±° κ°€λŠ₯ν•œ 속성듀을 ν¬ν•¨ν•˜μ—¬ κ°μ²΄μ—μ„œ λ¬Έμžμ—΄λ‘œ ν‚€κ°€ μ§€μ •λœ λͺ¨λ“  μ—΄κ±° κ°€λŠ₯ν•œ 속성에 λŒ€ν•΄ λ°˜λ³΅ν•©λ‹ˆλ‹€. (Symbol둜 ν‚€κ°€ μ§€μ •λœ 속성은 λ¬΄μ‹œν•©λ‹ˆλ‹€.)

developer.mozilla.org

 

728x90