๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๐Ÿ– WELL-DONE Project/Javascript

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋ฌธ์ž์—ด(String) ์ตํžˆ๊ธฐ - ๋ฐฐ์—ด(Array)๊ณผ ๊ณตํ†ต์ &์ฐจ์ด์ 

๋ฐฐ์—ด(Array)๊ณผ ๋ฌธ์ž์—ด(String)์˜ ๊ณตํ†ต์ 

๋ฐฐ์—ด๊ณผ ๋ฌธ์ž์—ด์€ ๋‹ฎ์€ ๊ตฌ์„์ด ์žˆ๋Š”๋ฐ,๋ฐ”๋กœ ๋‘˜ ๋‹ค index๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค.

const arr = ['h', 'e', 'l', 'l', 'o'];
const str = 'hello';
console.log(arr.length); //outputs:4
console.log(str.length); //outputs:4

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ๋Š” ๋ฐฐ์—ด์„ ์ข€ ๋” ํŽธํ•˜๊ฒŒ ๋‹ค๋ฃฐ ์ˆ˜ ์žˆ๊ฒŒ ๋‹ค์–‘ํ•œ ๋ฉ”์„œ๋“œ๋“ค์ด ์กด์žฌํ•˜๋Š”๋ฐ,Array-Javascript|MDN

๋ฌธ์ž์—ด๋„ index๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๊ธฐ์— ๋ฐฐ์—ด์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์—ฌ๋Ÿฌ ๋ฉ”์†Œ๋“œ๋“ค(indexOf,slice๋“ฑ๋“ฑ)์„ ์‚ฌ์šฉํ•  ์ˆ˜๊ฐ€ ์žˆ๋‹ค.

@ ๋ฌธ์ž์—ด๊ฐ’์— index๊ฐ’์œผ๋กœ ์›ํ•˜๋Š” ๋ฌธ์ž์—ด ์ฐพ์•„์˜ค๊ธฐ

const str = 'overwatch';
console.log(str[2]); //outputs:"e"
console.log(str.charAt(4)); //outputs:"w"

@ ๋ฌธ์ž์—ด๊ฐ’์œผ๋กœ index๊ฐ’ ์ฐพ์•„์˜ค๊ธฐ

const str = 'tanker:sigma';
console.log(str.indexOf('i')); //outputs: 8
console.log(str.lastIndexOf('a')); //outputs: 11

๋ฐฐ์—ด(Array)๊ณผ ๋ฌธ์ž์—ด(String)์˜ ์ฐจ์ด์ 

๊ฐ€์žฅ ๊ฒฐ์ •์ ์ธ ํฐ ์ฐจ์ด๋Š” ๋ฐฐ์—ด์€ ๊ฐ์ฒด(Object)์ด์ž ์ฐธ์กฐํ˜•(Reference) ํƒ€์ž…์˜ ๋ฐ์ดํ„ฐํ˜•์ด๊ณ  ๋ฌธ์ž์—ด์€ ๋ฌธ์ž(String)์ด์ž ์›์‹œํ˜•(primitive)ํƒ€์ž…์˜ ๋ฐ์ดํ„ฐํ˜•์ด๋ผ๋Š” ๊ฒƒ์ด๋‹ค.

์ฐธ์กฐํ˜•(Reference)๋ฐ์ดํ„ฐ ํƒ€์ž… & ์›์‹œํ˜•(Primitive)๋ฐ์ดํ„ฐ ํƒ€์ž… ์ดํ•ดํ•˜๊ธฐ

@ typeof ์—ฐ์‚ฐ์ž๋กœ ํ™•์ธํ•ด๋ณด์ž.

const arr = ['1','2','3'];
const str = '123';
console.log(typeof arr); //outputs: "object"
console.log(typeof str); //outputs: "string"
console.log(arr == str); //outputs: false
console.log(arr === str); //outputs: false

์œ„์˜ ๋งํฌ์—์„œ ์ž์„ธํ•œ ์„ค๋ช…์ด ๋‚˜์™€์žˆ๊ธด ํ•˜์ง€๋งŒ ์ฐธ์กฐํ˜• ๋ฐ์ดํ„ฐ ํƒ€์ž…์ธ ๊ฐ์ฒด๋Š” ์ƒ์„ฑ๋œ ๊ฐ’์„ ํ• ๋‹นํ•˜๊ฒŒ ๋˜๋ฉด ํ•ด๋‹น ๋ณ€์ˆ˜์— '๊ฐ’์˜ ์ฃผ์†Œ'์™€ '๊ฐ’์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋Š” ๊ธธ'์„ ๋งŒ๋“ค์–ด์ค€๋‹ค.

๋ฐ˜๋Œ€๋กœ ์›์‹œ์  ๋ฐ์ดํ„ฐ ํƒ€์ž…์ธ ๋ฌธ์ž์—ด์€ ๊ฐ’์ด ์ƒ์„ฑ๋˜๊ณ  ๋ณ€์ˆ˜์— ํ• ๋‹นํ•˜๊ฒŒ ๋˜๋ฉด ํ•ด๋‹น ๋ณ€์ˆ˜ ๋ฐ•์Šค์— '๊ฐ’์„ ๋‹ด์•„์ค€๋‹ค.'

์•„๋ž˜์™€ ์˜ˆ์ œ์™€ ๊ฐ™์ด ๋ฐฐ์—ด์˜ index์š”์†Œ ๊ฐ’์„ ์ˆ˜์ •์ด ๊ฐ€๋Šฅํ•˜๊ธฐ์— mutable:(ํ˜•)๋ฐ”๋€” ์ˆ˜ ์žˆ๋Š” ์†์„ฑ์ด๋ผ ๋ถ€๋ฅด๊ณ  ๋ฌธ์ž์—ด์€ index์š”์†Œ ๊ฐ’์„ ์ˆ˜์ •์ด ๋ถˆ๊ฐ€๋Šฅํ•˜๊ธฐ์— immutable:(ํ˜•)๋ฐ”๋€” ์ˆ˜ ์—†๋Š” ์†์„ฑ์ด๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค. (๋ฌธ์ž์—ด์€ ๊ฐ’์„ ์ˆ˜์ •ํ•˜๋ ค๋ฉด ์ „์ฒด๊ฐ’์„ ์ˆ˜์ •ํ•ด์ค˜์•ผ ํ•œ๋‹ค.

let arr = ['z','a','y','r','a'];
let str = 'zayra';
arr[2] = 'd';
console.log(arr); //ouputs: ['z','a','d','r','a']
str[2] = 'd';
console.log(str); //outputs: 'zayra'
str = 'zadra';
console.log(str); //outputs: 'zadra'