# ๋ฌธ์ž์—ด(String)

๋ฌธ์ž์—ด์€ ๋ณ€์ˆ˜์˜ ์—ฌ๋Ÿฌ ํƒ€์ž… ์ค‘ ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ์ŠคํŠธ๋ง์ด๋ผ๊ณ ๋„ ๋ถ€๋ฅด๋ฉฐ ์•„๋ž˜์™€ ๊ฐ™์ด ์„ ์–ธํ•ฉ๋‹ˆ๋‹ค.

var a = 'hello';

์œ„ ์ฝ”๋“œ๋Š” a๋ผ๋Š” ๋ณ€์ˆ˜์— hello๋ผ๋Š” ๋ฌธ์ž์—ด์„ ํ• ๋‹นํ•œ ์ฝ”๋“œ์ž…๋‹ˆ๋‹ค. ๋ฌธ์ž์—ด์€ ์ด์™€ ๊ฐ™์ด ์ž‘์€ ๋”ฐ์˜ดํ‘œ(') ๋˜๋Š” ํฐ ๋”ฐ์˜ดํ‘œ(")๋ฅผ ์ด์šฉํ•˜์—ฌ ์ •์˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

# ์ˆซ์ž์™€์˜ ๊ตฌ๋ถ„

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•˜๋Š” ์‹œ์ ์— ๋ณ€์ˆ˜์˜ ํƒ€์ž…์„ ๊ฒฐ์ •ํ•˜๋Š” ์–ธ์–ด์ž…๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ํŠน์ง•์ด ์ดˆ์‹ฌ์ž๋“ค์—๊ฒŒ๋Š” ํŽธํ•˜์ง€๋งŒ ์•„๋ž˜์™€ ๊ฐ™์ด ํƒ€์ž…์„ ํ—ท๊ฐˆ๋ฆฌ๊ฒŒ ํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์ƒ๊น๋‹ˆ๋‹ค.

var a = 10;
var b = '10';
console.log(a); // 10
console.log(b); // 10

์œ„ ์ฝ”๋“œ์—์„œ ๋ณ€์ˆ˜ a๋Š” ์ˆซ์ž๊ณ  ๋ณ€์ˆ˜ b๋Š” ๋ฌธ์ž์—ด์ž…๋‹ˆ๋‹ค. ์ฝ˜์†” ๋กœ๊ทธ ์ฝ”๋“œ๋ฅผ ์ด์šฉํ•˜์—ฌ ์ฝ˜์†”์— ๋ณ€์ˆ˜์˜ ๊ฐ’์„ ์ถœ๋ ฅํ•ด๋ณด๋ฉด ์œก์•ˆ์œผ๋กœ๋Š” ๊ตฌ๋ถ„ํ•˜๊ธฐ๊ฐ€ ์–ด๋ ต๋‹ค๋Š” ์‚ฌ์‹ค์„ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์—ฌ๊ธฐ์„œ typeof๋ฅผ ์ด์šฉํ•˜์—ฌ ๋ณ€์ˆ˜์˜ ํƒ€์ž…์„ ํ™•์ธํ•  ์ˆ˜๋„ ์žˆ๊ฒ ์ง€๋งŒ ์‹ค๋ฌด ๊ด€์ ์—์„œ๋Š” ์•„๋ž˜์™€ ๊ฐ™์€ ๋ฐฉ๋ฒ•์œผ๋กœ ๊ตฌ๋ถ„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

console.log(a.length); // undefined
console.log(b.length); // 2

์—ฌ๊ธฐ์„œ length ๋ผ๋Š” ์˜ˆ์•ฝ์–ด๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ ๋ณ€์ˆ˜์˜ ํƒ€์ž…์— ๋”ฐ๋ผ ์ œ๊ณตํ•˜๋Š” ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค. length๋Š” ๋ฌธ์ž์—ด, ๋ฐฐ์—ด์˜ ๊ธธ์ด๋ฅผ ์ˆซ์ž ํ˜•ํƒœ๋กœ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ b๋Š” ๋ฌธ์ž์—ด์ด๊ณ  a๋Š” ์ˆซ์ž์ž„์„ ์ถ”์ธกํ•  ์ˆ˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

์œ„์™€ ๊ฐ™์ด ํƒ€์ž…์— ๋”ฐ๋ผ ๊ธฐ๋ณธ์ ์œผ๋กœ ์ œ๊ณต๋˜๋Š” ์˜ˆ์•ฝ์–ด ๋ฐ ๊ธฐ๋Šฅ๋“ค์„ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋‚ด์žฅ ํ•จ์ˆ˜(JavaScript Built-in API / JavaScript Native API)๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ๋‚ด์žฅ ํ•จ์ˆ˜์— ๋Œ€ํ•ด์„œ๋Š” prototype์—์„œ ์ž์„ธํžˆ ์„ค๋ช…ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.