TIL - 21.06.29 πŸ‘¨β€πŸ’» - JS

μ„±ν›ˆΒ·2021λ…„ 6μ›” 29일
0

TIL

λͺ©λ‘ 보기
15/59
post-thumbnail

TIL - 21.06.29 πŸ‘¨β€πŸ’»

객체


Object.keys()

Object.keys(obj) λ©”μ†Œλ“œλŠ” 인자 μžλ¦¬μ— 객체λ₯Ό λ°›μ•„μ„œ 객체의 ν”„λ‘œνΌν‹° ν‚€λ₯Ό μš”μ†Œλ‘œ κ°€μ§€λŠ” 배열을 λ°˜ν™˜ν•˜λŠ” λ©”μ†Œλ“œμ΄λ‹€.

const obj = {
  name: 'sunghoon',
  job: 'dev',
  age: '26',
}

console.log(Object.keys(obj)) // [name, job, age]

λ°°μ—΄κ³Ό in μ—°μ‚°μž

in μ—°μ‚°μžλŠ” 이전에도 ν¬μŠ€νŒ… ν–ˆλ“―, key in obj의 λ¬Έλ²•μœΌλ‘œ μ‚¬μš©ν•˜λ©°, ν•΄λ‹Ή μ—°μ‚°μžλŠ” in 뒀에 μ˜€λŠ” 객체에 in μ•žμ— μ˜€λŠ” ν”„λ‘œνΌν‹° ν‚€κ°€ μ‘΄μž¬ν•˜λŠ”μ§€ λΆˆλ¦¬μ–Έ νƒ€μž…μœΌλ‘œ λ°˜ν™˜ν•˜λŠ” μ—°μ‚°μžμ΄λ‹€.

const obj = {
  name: 'sunghoon',
  job: 'dev',
  age: '26',
}

console.log('name' in obj) // true; ν”„λ‘œνΌν‹° ν‚€λ‘œ ν•΄λ‹Ή ν”„λ‘œνΌν‹°κ°€ 객체 μ•ˆμ— 쑴재 ν•˜λŠ”μ§€ λΆˆλ¦¬μ–Έ νƒ€μž…μœΌλ‘œ λ°˜ν™˜ν•œλ‹€.

이 in μ—°μ‚°μžλ₯Ό λ°°μ—΄μ—μ„œλ„ μ‚¬μš©ν•  수 μžˆλ‹€.
그런데 λ°°μ—΄ μ•ˆμ— μžˆλŠ” μš”μ†Œλ₯Ό in μ—°μ‚°μžλ‘œ 찾아도 false둜 λ°˜ν™˜ν•œλ‹€.
μ™œλƒ, λ°°μ—΄μ—μ„œμ˜ in μ—°μ‚°μžλŠ” μš”μ†Œλ₯Ό μ°ΎλŠ” 것이 μ•„λ‹Œ indexλ₯Ό key μžλ¦¬μ— λ°›μœΌλ©° ν•΄λ‹Ή index에 값이 ν• λ‹Ήλ˜μ–΄ μžˆλŠ”μ§€ μ—¬λΆ€λ₯Ό λ°˜ν™˜ν•˜κΈ° λ•Œλ¬Έμ΄λ‹€.

const arr = [1, 2, 3, ,5,] // index 3은 빈 μš”μ†Œμ΄λ‹€.

console.log(2 in arr) // true;
console.log(3 in arr) // false;  
// arr 의 3번 μΈλ±μŠ€κ°€ λΉ„μ–΄μžˆκΈ°μ— 2번 μΈλ±μŠ€μ— 3이 μžˆλ“  말든 falseλ₯Ό λ°˜ν™˜ν•œλ‹€.

μ½”ν”Œλ¦Ώ ν’€λ•ŒλŠ” λ™λ™κ±°λ¦¬λ©΄μ„œ 뭐가 문젠지, μ™œ 쑰건문 μ•ˆμœΌλ‘œ κΈ°μ–΄ λ“€μ–΄κ°€λŠ”μ§€ 이해λ₯Ό λͺ»ν–ˆμ§€λ§Œ μ§€κΈˆ μ™€μ„œ μƒκ°ν•˜λ©΄ λ‹Ήμ—°ν•œ κ²°κ³Όμ˜€λ‹€.

μ• μ΄ˆμ— 이 in μ—°μ‚°μžλŠ” κ°μ²΄μ—μ„œλ„ ν”„λ‘œνΌν‹° κ°’(property value)으둜 ν”„λ‘œνΌν‹° μ‘΄μž¬μ—¬λΆ€λ₯Ό ν™•μΈν•˜λŠ”κ²Œ μ•„λ‹ˆλΌ ν”„λ‘œνΌν‹° ν‚€(property key)둜 μ‘΄μž¬μ—¬λΆ€λ₯Ό ν™•μΈν•˜κ³  λΆˆλ¦¬μ–Έ νƒ€μž…μœΌλ‘œ λ°˜ν™˜ν•˜λŠ” λ©”μ†Œλ“œμ΄λ‹€.

κ·ΈλŸ¬λ‹ˆ λ‹Ήμ—°νžˆ μœ μ‚¬ 객체인 λ°°μ—΄μ—μ„œ μ‚¬μš©ν• λ•, κ°μ²΄μ—μ„œμ˜ ν‚€ 역할을 ν•˜λŠ” indexλ₯Ό 가지고 μ‘΄μž¬μ—¬λΆ€λ₯Ό λ°˜ν™˜ν•˜λŠ” 것이닀.

μ½”ν”Œλ¦Ώ 도쀑에 μš”μ†Œλ₯Ό μ•žμ— λ„£κ³ μ„  μ™œ μ—°μ‚°μžκ°€ μ΄μƒν•˜λ‹ˆ λ§ˆλ‹ˆ ν•˜λ˜κ²Œ κ°μ²΄μ—μ„œ in μ—°μ‚°μž μ•žμ— ν”„λ‘œνΌν‹° 값을 λ„£κ³  μ—°μ‚°μžκ°€ μ΄μƒν•˜λ‹€κ³  νˆ¬μ •λΆ€λ¦¬λ˜ κΌ΄ μ΄μ—ˆλ˜ 것이닀.


GOOD πŸ˜‰

였늘 μ½”ν”Œλ¦Ώ 문제λ₯Ό ν’€λ©° λŒ€λΆ€λΆ„ λ§‰νžˆλŠ” 것 없이 술술 ν’€μ—ˆλ‹€.
μ½”ν”Œλ¦Ώμ—μ„œ μƒκ²Όλ˜ λͺ‡κ°€μ§€ 의문이 λ‚˜μ€‘μ— κ³΅λΆ€ν•˜λ©΄μ„œ ν’€λ Έλ‹€.
였늘 μ½”ν”Œλ¦Ώ λ¬Έμ œν’€λ©΄μ„œ 크둬 κ°œλ°œμžλ„κ΅¬λ₯Ό μ΄μš©ν•΄ 였λ₯˜λ₯Ό μ°ΎλŠ” 것에 쑰금 더 μ΅μˆ™ν•΄μ‘Œλ‹€.

BAD πŸ˜₯

문제 풀어보고 ν•œλ‹€κ³  μ •μž‘ λ‚΄κ°€ λ”°λ‘œ 곡뢀할 λΆ„λŸ‰μ€ 곡뢀λ₯Ό λͺ»ν–ˆλ‹€.
λŠ¦μž μžμ„œ μ•„μΉ¨ 곡뢀도 많이 λͺ»ν–ˆλ‹€.

TO DO πŸ”₯

  • 객체 곡뢀
  • λ°°μ—΄ thisArgu
  • Node.js
  • React μž…λ¬Έ

Retrospect 🧐

주말에 μ‹€μ»· 놀고 μƒν™œνŒ¨ν„΄μ΄ μ™„μ „νžˆ κΉ¨μ Έ λ²„λ €μ„œ μ•„μΉ¨ μ‹œκ°„μ„ 자꾸 날리고 μžˆλ‹€.
κ·Έλž˜λ„ μ˜€λŠ˜μ€ μ–΄μ œλ³΄λ‹€ ν•œμ‹œκ°„ 빨리 μΌμ–΄λ‚¬μœΌλ‹ˆ 내일 아침에 μ˜€λŠ˜λ³΄λ‹€ ν•œμ‹œκ°„ 빨리 μΌμ–΄λ‚˜λ©΄ 원볡이닀!

μœ„μ— 적은 쑰건문에 in μ—°μ‚°μžλ₯Ό μ‚¬μš©ν–ˆλ˜ λ¬Έμ œλŠ” κ²°κ΅­ .includes λ©”μ†Œλ“œλ₯Ό μ΄μš©ν•΄μ„œ ν’€μ—ˆλ‹€.
λ‹Ήμ—°νžˆ 배열에선 .includes λ©”μ†Œλ“œκ°€ λ¨Όμ € 기얡났어야 ν–ˆλŠ”λ° 이 λ©”μ†Œλ“œλ₯Ό 써 본적이 μ—†μœΌλ‹ˆ λ°”λ‘œ λ°”λ‘œ 생각이 λ‚˜μ§€ μ•ŠλŠ” 것 κ°™λ‹€.

μ—­μ‹œ μ‹€μ œλ‘œ μ¨λ³΄λŠ”κ²Œ λ°°μš°λŠ”λ° 훨씬 도움이 λ˜λŠ” λ“― ν•˜λ‹€.

였늘 λͺ»ν–ˆλ˜ λ°°μ—΄μ˜ thisArguλŠ” 내일 아침에 μš΄λ™ ν›„λ”± κ°”λ‹€μ™€μ„œ λ°•μ‚΄λ‚΄κ² λ‹€.

Reference πŸ™‡

λͺ¨λ˜ μžλ°”μŠ€ν¬λ¦½νŠΈ - https://ko.javascript.info/

profile
μ–΄λ–»κ²Œ 이걸 ν’€μ–΄λ‚Ό 수 μžˆμ„κΉŒ

0개의 λŒ“κΈ€