재밌게 ν•©μ‹œλ‹€

κΈ°λ‘ν•˜κΈ°, κ°€μ‹œν™”ν•˜κΈ°

Vanilla JS

객체 ν”„λ‘œνΌν‹°μ— μ ‘κ·Όν•˜λŠ” 두 가지 λ°©λ²•μ˜ 차이점

μ€λ˜λ”” 2022. 9. 11. 00:53

객체의 ν”„λ‘œνΌν‹° 값에 μ ‘κ·Όν•˜λŠ” 방법은 두 가지가 μžˆλ‹€.

  1. 점(.) μ—°μ‚°μž μ‚¬μš©
  2. λŒ€κ΄„ν˜Έ([]) μ—°μ‚°μž μ‚¬μš©

두 방식은 λ‹€μŒκ³Ό 같은 차이점을 가진닀. 점 μ—°μ‚°μžλ₯Ό μ‚¬μš©ν•œλ‹€λ©΄ 였λ₯Έμͺ½μ—λŠ” ν”„λ‘œνΌν‹° 이름인 λ‹¨μˆœ μ‹λ³„μžκ°€ 와야 ν•œλ‹€. 반면 λŒ€κ΄„ν˜Έ μ—°μ‚°μžλ₯Ό μ‚¬μš©ν•œλ‹€λ©΄ 였λ₯Έμͺ½μ—λŠ” λ¬Έμžμ—΄λ‘œ ν‰κ°€λ˜λŠ” ν‘œν˜„μ‹μ΄ 와야 ν•œλ‹€.

let author = book.author; // 점 μ—°μ‚°μž μ‚¬μš©
let title = book["main title"]; // λŒ€κ΄„ν˜Έ μ—°μ‚°μž μ‚¬μš©

 

두 λ°©λ²•μ˜ μš©λ‘€ μƒμ˜ μ°¨μ΄λŠ” μ ‘κ·Όν•˜λ €λŠ” ν”„λ‘œνΌν‹° 값을 λ™μ μœΌλ‘œ λ³€κ²½ν•  수 μžˆλŠ”κ°€ 에 μžˆλ‹€. μ‹λ³„μžμ˜ 경우 μžλ°”μŠ€ν¬λ¦½νŠΈ 데이터 νƒ€μž…μ΄ μ•„λ‹ˆκΈ° λ•Œλ¬Έμ—, ν”„λ‘œκ·Έλž¨μ—μ„œ μ‘°μž‘ν•  수 μ—†λ‹€. 반면 λ¬Έμžμ—΄μ€ 데이터 νƒ€μž…μ΄κΈ°μ— ν”„λ‘œκ·Έλž¨μ΄ μ‹€ν–‰λ˜λŠ” λ™μ•ˆ μƒˆλ‘œ μƒμ„±ν•˜κ³  μ‘°μž‘ν•  수 μžˆλ‹€. κ°€λ Ή λ‹€μŒκ³Ό 같은 λ°©μ‹μ˜ ν”„λ‘œνΌν‹° 접근이 κ°€λŠ₯ν•˜λ‹€.

    for (let i = 0; i<4; i++) {
        console.log(customer[`address${i}`]); // λ¬Έμžμ—΄μ΄κΈ°μ— ν”„λ‘œκ·Έλž¨μ—μ„œ μ‘°μž‘μ΄ κ°€λŠ₯ν•˜λ‹€.
    }

*μ‹λ³„μž: 이름. μƒμˆ˜, λ³€μˆ˜, ν”„λ‘œνΌν‹°, ν•¨μˆ˜, 클래슀의 이름에 μ‹λ³„μžλ₯Ό μ‚¬μš©ν•œλ‹€.

 

λŒ€κ΄„ν˜Έ μ—°μ‚°μžλ₯Ό μ‚¬μš©ν•œ 방식은, μ ‘κ·Όν•΄μ•Ό ν•˜λŠ” ν”„λ‘œνΌν‹°μ˜ 이름을 μ½”λ“œ μž‘μ„± μ‹œμ— μ•Œ 수 μ—†λŠ” 경우 λ”μš± μœ μš©ν•˜λ‹€. ν•™μƒμ˜ 이름:λ‚˜μ΄ ν”„λ‘œνΌν‹°λ₯Ό μΆ”κ°€ν•˜λŠ” ν•¨μˆ˜λ₯Ό μž‘μ„±ν•œλ‹€κ³  κ°€μ •ν•΄λ³΄μž. μ΄λ•Œ λŸ°νƒ€μž„ μ΄μ „μ—λŠ” ν”„λ‘œνΌν‹° 이름을 μ•Œμ§€ λͺ»ν•œλ‹€. λ”°λΌμ„œ 점 μ—°μ‚°μžλ‘œλŠ” ν”„λ‘œνΌν‹°μ— μ ‘κ·Όν•  수 μ—†λ‹€. μ΄λ•Œ λŒ€κ΄„ν˜Έ μ—°μ‚°μžλ₯Ό μ‚¬μš©ν•  수 μžˆλ‹€.

function addStudent(students, name, age) {
    students[name] = age;
}

 

+) λŒ€κ΄„ν˜Έ μ—°μ‚°μžλ₯Ό μ‚¬μš©ν•œ ν”„λ‘œνΌν‹° 접근이 κ°€λŠ₯ν•œ μ΄μœ λŠ”, μžλ°”μŠ€ν¬λ¦½νŠΈμ˜ 객체가 μ—°κ΄€ 배열이기 λ•Œλ¬Έμ΄λ‹€. μ—°κ΄€ λ°°μ—΄(associative array)λž€ λ¬Έμžμ—΄μ„ 인덱슀둜 μ‚¬μš©ν•˜λŠ” 배열을 μ˜λ―Έν•œλ‹€. 파이썬의 λ”•μ…”λ„ˆλ¦¬λ₯Ό μƒκ°ν•˜λ©΄ 이해가 쉽닀.

 

+) μžλ°”μŠ€ν¬λ¦½νŠΈμ—μ„œ 객체 λ¦¬ν„°λŸ΄λ‘œ 객체λ₯Ό 생성할 λ•Œ, ν”„λ‘œνΌν‹°μ˜ 이름은 μžλ°”μŠ€ν¬λ¦½νŠΈ μ‹λ³„μž ν˜Ήμ€ λ¬Έμžμ—΄ λ¦¬ν„°λŸ΄μ΄ 될 수 μžˆλ‹€.

let book = {
    "main title": "Javascript", // λ¬Έμžμ—΄ λ¦¬ν„°λŸ΄μ΄κΈ° λ•Œλ¬Έμ— 곡백을 ν—ˆμš©ν•œλ‹€. 
    "sub-title": "the Definitive Guide", // λŒ€μ‹œ(-) λ˜ν•œ ν—ˆμš©ν•œλ‹€. 
    "author": "Kim",
}

// λ¬Όλ‘  1,2번째 ν”„λ‘œνΌν‹°μ˜ 경우 점 μ—°μ‚°μžλ₯Ό μ‚¬μš©ν•œ ν”„λ‘œνΌν‹° 접근이 λΆˆκ°€λŠ₯ν•˜λ‹€.
// μ„Έλ²ˆμ§ΈλŠ” 점 μ—°μ‚°μžμ™€ λŒ€κ΄„ν˜Έ μ—°μ‚°μž λͺ¨λ‘ κ°€λŠ₯ν•˜λ‹€.