๐Ÿ“’ ๋ž˜ํผ ๊ฐ์ฒด

zooyahoยท2022๋…„ 7์›” 16์ผ
0
post-thumbnail
post-custom-banner

์›์‹œ๊ฐ’๊ณผ ๋ž˜ํผ๊ฐ์ฒด

๋ฌธ์ž์—ด, ์ˆซ์ž, ๋ถˆ๋ฆฌ์–ธ ๊ฐ’์— ๋Œ€ํ•ด ๊ฐ์ฒด์ฒ˜๋Ÿผ ์ ‘๊ทผํ•˜๋ฉด ์ƒ์„ฑ๋˜๋Š” ์ž„์‹œ ๊ฐ์ฒด๋ฅผ ๋ž˜ํผ๊ฐ์ฒด(wrapper object)๋ผ ํ•œ๋‹ค.

๐Ÿ’ก ์›์‹œ๊ฐ’์ธ ๋ฌธ์ž์—ด, ์ˆซ์ž, ๋ถˆ๋ฆฌ์–ธ ๊ฐ’์˜ ๊ฒฝ์šฐ ์ด๋“ค ์›์‹œ๊ฐ’์— ๋Œ€ํ•ด ๋งˆ์น˜ ๊ฐ์ฒด์ฒ˜๋Ÿผ ๋งˆ์นจํ‘œ ํ‘œ๊ธฐ๋ฒ•(๋˜๋Š” ๋Œ€๊ด„ํ˜ธ ํ‘œ๊ธฐ๋ฒ•)์œผ๋กœ ์ ‘๊ทผํ•˜๋ฉด ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์—”์ง„์ด ์ผ์‹œ์ ์œผ๋กœ ์›์‹œ๊ฐ’์„ ์—ฐ๊ด€๋œ ๊ฐ์ฒด๋กœ ๋ณ€ํ™˜ํ•ด ์ค€๋‹ค.

๐Ÿ’ก ์—ฐ๊ด€๋œ ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜์—ฌ ์ƒ์„ฑ๋œ ๊ฐ์ฒด๋กœ ํ”„๋กœํผํ‹ฐ์— ์ ‘๊ทผํ•˜๊ฑฐ๋‚˜ ๋ฉ”์„œ๋“œ๋ฅผ ํ˜ธ์ถœํ•˜๊ณ  ๋‹ค์‹œ ์›์‹œ๊ฐ’์œผ๋กœ ๋˜๋Œ๋ฆฐ๋‹ค.

ex

๐Ÿ‘พ# ๋ฌธ์ž์—ด ๋ž˜ํผ๊ฐ์ฒด๋กœ ๋ณ€ํ™˜

const str = 'hi';
console.log(str.length); // 2
console.log(str.toUpperCase()); // HI

๐Ÿ‘‰๐Ÿป ๋ฌธ์ž์—ด ๋ž˜ํผ ๊ฐ์ฒด์ธ String ์ƒ์„ฑ์ž ํ•จ์ˆ˜์˜ ์ธ์Šคํ„ด์Šค String.prototype์˜ ๋ฉ”์„œ๋“œ๋ฅผ ์ƒ์†๋ฐ›์•„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Œ!

๐Ÿ‘พ# ์›์‹œ๊ฐ’ ๋ฌธ์ž์—ด๋กœ ๋ณ€ํ™˜

const str = 'hi';
console.log(str.length); // 2

console.log(typeof str); // string

๐Ÿ‘‰๐Ÿป ๋ž˜ํผ ๊ฐ์ฒด๋กœ ํ”„๋กœํผํ‹ฐ์— ์ ‘๊ทผํ•˜๊ฑฐ๋‚˜ ๋ฉ”์„œ๋“œ ํ˜ธ์ถœ ํ›„, ๋‹ค์‹œ ์›์‹œ๊ฐ’์œผ๋กœ ๋˜๋Œ๋ฆฐ๋‹ค!!
๐Ÿ‘‰๐Ÿป ์ด๋•Œ ๋ž˜ํผ ๊ฐ์ฒด๋Š” ๊ฐ€๋น„์ง€ ์ปฌ๋ ‰์…˜์˜ ๋Œ€์ƒ์ด ๋œ๋‹ค.

๐Ÿ‘พ# ๋ž˜ํผ ๊ฐ์ฒด์— ๋™์ ์œผ๋กœ ํ”„๋กœํผํ‹ฐ ์ถ”๊ฐ€

const str = 'hi';
str.name = 'zooyaho'; // error ์•ˆ๋‚จ 1๏ธโƒฃ
console.log(str.name); // undefined 2๏ธโƒฃ

๐Ÿ‘‰๐Ÿป 1๏ธโƒฃ ๋ž˜ํผ ๊ฐ์ฒด์— ๋™์ ์œผ๋กœ ํ”„๋กœํผํ‹ฐ ์ถ”๊ฐ€ ํ›„ ์‹๋ณ„์ž str์€ ๋‹ค์‹œ ์›๋ž˜์˜ ์›์‹œ๊ฐ’ ๋ฌธ์ž์—ด๋กœ ๋Œ์•„์˜จ๋‹ค.
๐Ÿ‘‰๐Ÿป 1๏ธโƒฃ์—์„œ ์ƒ์„ฑ๋œ ๋ž˜ํผ ๊ฐ์ฒด๋Š” ์•„๋ฌด๋„ ์ฐธ์กฐํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ ๊ฐ€๋น„์ง€ ์ปฌ๋ ‰์…˜์˜ ๋Œ€์ƒ์ด ๋œ๋‹ค.
๐Ÿ‘‰๐Ÿป 2๏ธโƒฃ ์ƒˆ๋กœ์šด ๋ž˜ํผ๊ฐ์ฒด๊ฐ€ ์•”๋ฌต์ ์œผ๋กœ ์ƒ์„ฑ๋˜๊ณ  ๊ฐ€๋ฆฌํ‚ค๋ฏ€๋กœ undefined๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค!

[์ฐธ๊ณ ] ๋ชจ๋˜ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ Deep Dive

profile
์ฆ๊ฒ๊ฒŒ ๊ฐœ๋ฐœํ•˜์ž ์ฅฌ์•ผํ˜ธ๐Ÿ‘ป
post-custom-banner

0๊ฐœ์˜ ๋Œ“๊ธ€