λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
Front-end/JS

μžλ°”μŠ€ν¬λ¦½νŠΈκ°€ data λ₯Ό μ €μž₯ν•˜λŠ” 방법 (λ©”λͺ¨λ¦¬ μ €μž₯ 방식)

by ciocio 2022. 2. 15.

πŸ“  당신이 μ„ μ–Έν•œ λ³€μˆ˜λŠ” μŠ€μŠ€λ‘œμ—κ²Œ ν• λ‹Ήλœ 값을 λͺ¨  λ₯Έ  λ‹€.

 

 

μš°λ¦¬κ°€ λ³€μˆ˜λ‘œ μ„ μ–Έν•˜κ³  μ§€μ •ν•˜λŠ” λͺ¨λ“  것은 "μ‹λ³„μž"이닀.

μ‹λ³„μžλž€, λ©”λͺ¨λ¦¬ 곡간에 μ €μž₯λ˜μ–΄ μžˆλŠ” μ–΄λ–€ κ°’을 κ΅¬λ³„(식별)ν•΄ λ‚Ό 수 μžˆλŠ” κ³ μœ ν•œ 이름이닀.

즉, μ‹λ³„μžλŠ” 값이 μ•„λ‹ˆλΌ 값이 μ €μž₯된 λ©”λͺ¨λ¦¬ μ£Όμ†Œλ₯Ό κΈ°μ–΅ν•œλ‹€.

--> μ›μ‹œ νƒ€μž…κ³Ό 객체 νƒ€μž… λͺ¨λ‘μ— ν•΄λ‹Ήλ˜λŠ” λ‚΄μš©μ΄κΈ° λ•Œλ¬Έμ— ꡉμž₯히 μ€‘μš”ν•¨

 


 

λ‹€μŒκ³Ό 같은 λ°©μ‹μœΌλ‘œ μ›μ‹œ νƒ€μž…μ˜ 값을 λ³΅μ‚¬ν•˜κ²Œ 되면 1λ˜λŠ” 2와 같은 일이 μΌμ–΄λ‚œλ‹€.

 

const num = 5;
const copyNum = num;

console.log(num === copyNum) // true
// μ›μ‹œ 값을 ν• λ‹Ήν•œ λ³€μˆ˜λ₯Ό λ‹€λ₯Έ λ³€μˆ˜μ— ν• λ‹Ήν•˜λŠ” 것을 "κΉŠμ€ 볡사"라고 λΆ€λ₯΄κΈ°λ„ ν•œλ‹€. (곡식 x)

 

1. μƒˆλ‘œμš΄ λ©”λͺ¨λ¦¬ 곡간을 ν• λ‹Ήν•˜μ—¬ λ³΅μ‚¬λœ 값을 μ €μž₯ν•œλ‹€. (ν• λ‹Ήλœ 값은 κ°™μ§€λ§Œ λ©”λͺ¨λ¦¬ μ£Όμ†ŒλŠ” λ‹€λ₯΄λ‹€)

2. λ‹€λ₯Έ 값이 ν• λ‹Ήλ˜κΈ° μ „κΉŒμ§€ 같은 λ©”λͺ¨λ¦¬ 곡간을 κ³΅μœ ν•œλ‹€. (ν• λ‹Ήλœ 값도 κ°™κ³  λ©”λͺ¨λ¦¬ μ£Όμ†Œλ„ κ°™λ‹€)

-->  ECMAScriptμ—μ„œ λ‚΄λΆ€ λ™μž‘μ΄ μ–΄λ–»κ²Œ μΌμ–΄λ‚˜λŠ”μ§€ μ„€λͺ…해놓지 μ•Šμ•„μ„œ 일단 κ°€μ •

 

 

μœ„μ™€ λ™μΌν•œ ν˜•μ‹μœΌλ‘œ 객체 νƒ€μž…μ˜ 값을 λ³΅μ‚¬ν•˜κ²Œ 되면 λ‹€μŒκ³Ό 같은 일이 μΌμ–΄λ‚œλ‹€.

 

const obj = {
  number : 5
};
const copyObj = obj;

console.log(obj === copyObj) // true
// 객체λ₯Ό ν• λ‹Ήν•œ λ³€μˆ˜λ₯Ό λ‹€λ₯Έ λ³€μˆ˜μ— ν• λ‹Ήν•˜λŠ” 것을 "얕은 볡사"라고 λΆ€λ₯΄κΈ°λ„ ν•œλ‹€. (곡식 x)

 

μƒˆλ‘œμš΄ λ©”λͺ¨λ¦¬ 곡간을 ν• λ‹Ήν•˜μ—¬ λ³΅μ‚¬λœ κ°’μ˜ μ£Όμ†Œλ₯Ό μ €μž₯ν•œλ‹€. (ν• λ‹Ήλœ κ°’μ˜ μ£Όμ†ŒλŠ” κ°™μ§€λ§Œ λ©”λͺ¨λ¦¬ μ£Όμ†ŒλŠ” λ‹€λ₯΄λ‹€)

 


 

λ©”λͺ¨λ¦¬ 곡간에 μ €μž₯λ˜λŠ” 값이, μ›μ‹œ νƒ€μž…μ€ κ°’ κ·Έ μžμ²΄μ΄μ§€λ§Œ,

객체 νƒ€μž…μ€ κ°’μ˜ μ£Όμ†Œμ΄κΈ° λ•Œλ¬Έμ— 비ꡐ μ—°μ‚°μž κ΅¬λ¬Έμ—μ„œ 차이가 생긴닀.

 

// λͺ¨λ‘ λ©”λͺ¨λ¦¬ 곡간에 μ €μž₯된 값을 λΉ„κ΅ν•œλ‹€.

// μ›μ‹œ νƒ€μž…
const name = 'lee';
const holy = 'lee';

console.log(name === holy) // true
// μƒκΉ€μƒˆλ„ κ°™κ³  λ©”λͺ¨λ¦¬ 곡간에 μ €μž₯된 값도 κ°™λ‹€.

// 객체 νƒ€μž…
const nameObj = {
  name: 'lee'
};

const holyObj = {
  name: 'lee'
};

console.log(nameObj === holyObj) // false
// μƒκΉ€μƒˆλŠ” κ°™μ§€λ§Œ λ©”λͺ¨λ¦¬ 곡간에 μ €μž₯된 μ°Έμ‘° 값이 λ‹€λ₯΄λ‹€.

 

λ°˜μ‘ν˜•

λŒ“κΈ€