B20 : ๋ฐฐ์—ด

2025. 8. 21. 01:02ใ†Front-end/JavaScript

๋ฐ˜์‘ํ˜•

๋ชฉ์ฐจ

1. ๋ฐฐ์—ด

    1-1. ๋ฐฐ์—ด์˜ ์ƒ์„ฑ

    1-2. ๋ฐฐ์—ด ์›์†Œ์— ์ ‘๊ทผ

    1-3. const ๋ฐฐ์—ด์€ ๋ณ€ํ•˜์ง€ ์•Š์„๊นŒ?

2. ๋ฐฐ์—ด ๋ฉ”์„œ๋“œ

    2-1. ๋ฐฐ์—ด ๊ธธ์ด : length

    2-2. ์›๋ณธ ๋ฐฐ์—ด ์ˆ˜์ • : shift(), unshift(), push(), pop(), splice(), sort(), reverse()

    2-3. ์ƒˆ๋กœ์šด ๋ฐฐ์—ด ์ƒ์„ฑ : concat(), slice(), Spread Operator

    2-4. ๋ฐฐ์—ด ์›์†Œ ๋‹ค๋ฃจ๊ธฐ : map(), forEach(), filter()

    2-5. ํŠน์ • ๊ฐ’ ์ฐพ๊ธฐ : indexOf(), lastIndexOf(), includes()

    2-6. ๋ฐฐ์—ด ์ถœ๋ ฅํ•˜๊ธฐ : toString(arr)

3. ์œ ์‚ฌ ๋ฐฐ์—ด ๊ฐ์ฒด

4. for...of ๋ฐ˜๋ณต๋ฌธ


1. ๋ฐฐ์—ด

์ˆœ์„œ๊ฐ€ ์žˆ๋Š” ๋ฐ์ดํ„ฐ์˜ ์ง‘ํ•ฉ์œผ๋กœ, ์ •์ˆ˜ ํƒ€์ž…์˜ ์ธ๋ฑ์Šค๋ฅผ ํ”„๋กœํผํ‹ฐ๋กœ ๊ฐ€์ง€๋Š” ๊ฐ์ฒด์ด๋‹ค.

์ธ๋ฑ์Šค ๊ฐ’์€ 0๋ถ€ํ„ฐ ์‹œ์ž‘ํ•œ๋‹ค.

1. ๋ฐฐ์—ด์˜ ์ƒ์„ฑ

๋ฐฐ์—ด์€ Array() ์ƒ์„ฑ์ž ํ•จ์ˆ˜๋‚˜, ๋ฐฐ์—ด ๋ฆฌํ„ฐ๋Ÿด[]์„ ์‚ฌ์šฉํ•ด ์ƒ์„ฑํ•œ๋‹ค.

// 1. Array() ์ƒ์„ฑ์ž ํ•จ์ˆ˜ ์‚ฌ์šฉ (์ž˜ ์•ˆ์”€)
const arr = new Array(1,'2', true);
console.log(arr);	// [1, '2', true]

const arr = new Array(3);
console.log(arr);	// [empty, empty, empty] - ๊ธธ์ด๊ฐ€ 3์ธ ๋นˆ ๋ฐฐ์—ด

// 2. ๋ฐฐ์—ด ๋ฆฌํ„ฐ๋Ÿด[] ์‚ฌ์šฉ
const arr = [1, '2', true];

 

 

2. ๋ฐฐ์—ด ์›์†Œ ์ ‘๊ทผ๊ณผ ๋™์  ์›์†Œ ์ƒ์„ฑ

๋ฐฐ์—ด ์›์†Œ์— ์ ‘๊ทผํ•  ๋•Œ๋Š” ๋Œ€๊ด„ํ˜ธ[]์— ์ธ๋ฑ์Šค๊ฐ’์„ ๋„ฃ์–ด ์ ‘๊ทผํ•œ๋‹ค.

๋ฐฐ์—ด ๊ธธ์ด๋ณด๋‹ค ํฐ ์ธ๋ฑ์Šค๊ฐ’์„ ์‚ฌ์šฉํ•œ๋‹ค๋ฉด undefined๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

์›์†Œ๋ฅผ ์ถ”๊ฐ€ํ•  ๋•Œ๋Š” ์›ํ•˜๋Š” ์ธ๋ฑ์Šค์— ๊ฐ’์„ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ๋‹ค.

// ๋ฐฐ์—ด ์›์†Œ ์ ‘๊ทผ
const arr = [1, 2, 3];
console.log(arr[0]);	// 1

// ๋™์  ์›์†Œ ์ƒ์„ฑ
const arr = [];
arr[0] = 1;
arr[2] = 3;
console.log(arr);	// [1, empty, 3]
  • ๋‘๋ฒˆ์งธ ์˜ˆ์‹œ๊ฐ™์ด ์ค‘๊ฐ„์ด ๋นˆ ๋ฐฐ์—ด์„ ํฌ์†Œ ๋ฐฐ์—ด์ด๋ผ๊ณ  ํ•˜๋Š”๋ฐ, ๋นˆ ์›์†Œ๋Š” forEach(), map(), filter()๊ฐ™์€ ๋ฐฐ์—ด์˜ ๋‚ด์žฅ ๋ฉ”์„œ๋“œ์—์„œ๋Š” ๋ฌด์‹œ๋˜๋‚˜, find(), findIndex() ๋ฉ”์„œ๋“œ์—์„œ๋Š” ๋ฌด์‹œ๋˜์ง€ ์•Š๊ณ  ๋ชจ๋‘ ํƒ์ƒ‰๋œ๋‹ค.

ํฌ์†Œ ๋ฐฐ์—ด์€ ๋™์ž‘์ด ์ผ๊ด€๋˜์ง€ ์•Š๊ณ , ๊ฐ€๋…์„ฑ๊ณผ ๊ตฌ์กฐ ํŒŒ์•…์— ์•ˆ์ข‹์œผ๋‹ˆ ์›ฌ๋งŒํ•˜๋ฉด ์“ฐ์ง€ ์•Š๋Š”๋‹ค.

 

3. const ๋ฐฐ์—ด์€ ๋ณ€ํ•˜์ง€ ์•Š์„๊นŒ?

์œ„ ์˜ˆ์‹œ์—์„œ ๋ฐฐ์—ด์„ ์„ ์–ธํ•  ๋•Œ const ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ–ˆ๋‹ค.

const ํ‚ค์›Œ๋“œ๋กœ ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธํ•˜๋ฉด ๊ฐ’์„ ์žฌํ• ๋‹นํ•  ์ˆ˜ ์—†๋‹ค. (TypeError ๋ฐœ์ƒ)

 

ํ•˜์ง€๋งŒ const๋กœ ๊ฐ์ฒด/๋ฐฐ์—ด์„ ์„ ์–ธํ•  ๊ฒฝ์šฐ, ๋ฉ”์„œ๋“œ๋ฅผ ํ†ตํ•ด ๊ฐ’์„ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ๋‹ค.

const๋กœ ์ƒ์ˆ˜๋กœ ์„ ์–ธ๋œ ๊ฒƒ์€ ๊ฐ์ฒด/๋ฐฐ์—ด ๋‚ด๋ถ€ ํ”„๋กœํผํ‹ฐ๊ฐ€ ์•„๋‹ˆ๋ผ, ๋ฐฐ์—ด์˜ ์ฃผ์†Œ๊ฐ’ ๊ทธ ์ž์ฒด์ด๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

const arr = [1, 2, 3];

// โœ… ๋‚ด๋ถ€ ๊ฐ’์€ ๋ณ€๊ฒฝ ๊ฐ€๋Šฅ
arr[0] = 99;
arr.push(4);

console.log(arr); // [99, 2, 3, 4]

// โŒ ๋ณ€์ˆ˜ ์ž์ฒด๋ฅผ ๋‹ค๋ฅธ ๋ฐฐ์—ด๋กœ ์žฌํ• ๋‹น์€ ๋ถˆ๊ฐ€๋Šฅ
arr = [9, 9, 9]; // TypeError

 

const๋กœ ๋ฐฐ์—ด์„ ์„ ์–ธํ•˜๋Š” ์ด์œ ๋Š” ๋ถˆํ•„์š”ํ•œ ์žฌํ• ๋‹น ๊ฐ€๋Šฅ์„ฑ์„ ์ค„์ด๊ณ , ์ƒํƒœ ๊ด€๋ฆฌ ์‹ค์ˆ˜๋ฅผ ์ค„์ด๋ ค๋Š” ๋ชฉ์ ์ด๋‹ค.

 

๋ฐฐ์—ด ๋‚ด๋ถ€ ๊ฐ’๊นŒ์ง€ ๋ณ€๊ฒฝ์„ ๋ง‰๊ณ  ์‹ถ๋‹ค๋ฉด JS ๋‚ด์žฅ ๊ฐ์ฒด์˜ ๋ฉ”์„œ๋“œ์ธ Object.freeze(arr)๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

// ์–•์€ ๋™๊ฒฐ
const arr = [1, 2, 3];
Object.freeze(arr);

// ๊นŠ์€ ๋™๊ฒฐ
const arr = [[1, 2], [3, 4]];
function deepFreeze(obj) {
  Object.freeze(obj);
  Object.keys(obj).forEach(key => {
    if(typeof obj[key] === 'object' && obj[key] !== null) {
      deepFreeze(obj[key]);
    }
  });
  return obj;
}
 const arr2 = deepFreeze(arr);
 arr2.push(4);	// error

 

 


2. ๋ฐฐ์—ด ๋ฉ”์„œ๋“œ

1. ๋ฐฐ์—ด ๊ธธ์ด : length  

length

๋นˆ ์›์†Œ ๊ฐ’์„ ํฌํ•จํ•˜์—ฌ ์ „์ฒด ๋ฐฐ์—ด์˜ ๊ธธ์ด๋ฅผ ๊ณ„์‚ฐํ•˜๋ฉฐ, length ํ”„๋กœํผํ‹ฐ๋ฅผ ์ง์ ‘ ์ˆ˜์ •ํ•˜์—ฌ ๋ฐฐ์—ด์˜ ๊ธธ์ด๋ฅผ ์กฐ์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.

const arr = [1, 2, 3, 4];
console.log(arr.length);	// 4

arr.length = 2;
console.log(arr);	// [1, 2]

 


2. ์›๋ณธ ๋ฐฐ์—ด ์ˆ˜์ • : shift(), unshift(), push(), pop(), splice(), sort() 

shift()

  • ๊ธฐ๋Šฅ : ๋ฐฐ์—ด์˜ ์ฒซ ๋ฒˆ์งธ ์›์†Œ๋ฅผ ์‚ญ์ œ
  • ๋ฐ˜ํ™˜๊ฐ’ : ์‚ญ์ œ๋œ ์›์†Œ
const arr = [1, 2];
console.log(arr.shift));	// 1
console.log(arr);	// [2]

 

unshift()

  • ๊ธฐ๋Šฅ : ๋ฐฐ์—ด์˜ ์ฒซ ๋ฒˆ์งธ ์ธ๋ฑ์Šค์— ์›์†Œ๋ฅผ ์ถ”๊ฐ€
  • ๋ฐ˜ํ™˜๊ฐ’ : ๋ฐฐ์—ด์˜ ์ƒˆ๋กœ์šด ๊ธธ์ด
const arr = [1, 2];
console.log(arr.unshift(-1, 0));	// 4
console.log(arr);	//[-1, 0, 1, 2]

 

push()

  • ๊ธฐ๋Šฅ : ๋ฐฐ์—ด์˜ ๋งˆ์ง€๋ง‰ ์ธ๋ฑ์Šค์— ์›์†Œ๋ฅผ ์ถ”๊ฐ€
  • ๋ฐ˜ํ™˜๊ฐ’ : ๋ฐฐ์—ด์˜ ์ƒˆ๋กœ์šด ๊ธธ์ด
const arr=[1];
console.log(arr.push(2,3));	// 3
console.log(arr);	// [1, 2, 3]

 

pop()

  • ๊ธฐ๋Šฅ : ๋ฐฐ์—ด์˜ ๋งˆ์ง€๋ง‰ ์›์†Œ๋ฅผ ์‚ญ์ œ
  • ๋ฐ˜ํ™˜๊ฐ’ : ์‚ญ์ œ๋œ ์›์†Œ
const arr = [1, 2];
console.log(arr.pop());	// 2
console.log(arr);	// [1]

 

splice()

  • ๊ธฐ๋Šฅ : ๋ฐฐ์—ด์˜ ์›์†Œ๋ฅผ ์ถ”๊ฐ€/๊ต์ฒด/์‚ญ์ œํ•˜์—ฌ ๋ฐฐ์—ด ๋ฐ์ดํ„ฐ ๋ณ€๊ฒฝ
  • ๋ฐ˜ํ™˜๊ฐ’ : ์‚ญ์ œ๋œ ๋ฐฐ์—ด
๋”๋ณด๊ธฐ

splice(startIndex) : n๋ฒˆ์งธ ์ธ๋ฑ์Šค ์ด์ƒ์˜ ๊ฐ’์„ ๋ชจ๋‘ ์‚ญ์ œ

splice(startIndex, deleteCount) : startIndex๋ถ€ํ„ฐ deleteCount๋งŒํผ ์‚ญ์ œ

splice(startIndex, deleteCount, item, ... ) : ์‚ญ์ œํ•œ ์ž๋ฆฌ์— item๋“ค ์ถ”๊ฐ€

const arr = [1, 2, 3];
console.log(arr.splice((1, 2));	// [2, 3] : arr[1]~arr[2] ์‚ญ์ œ
console.log(arr);	// [1]

 

sort()

  • ๊ธฐ๋Šฅ : ๋ฐฐ์—ด์˜ ์›์†Œ๋ฅผ '์ธ์ž๋กœ ๋„˜๊ธด ๋น„๊ต ํ•จ์ˆ˜'๋ฅผ ์‚ฌ์šฉํ•ด ์ •๋ ฌ
  • ๋ฐ˜ํ™˜๊ฐ’ : ์žฌ์ •๋ ฌ๋œ ๋ฐฐ์—ด
const arr = [3, 2, 4, 21, 55];
arr.sort();
console.log(arr);	//	[2, 21, 3, 4, 55] : ๋ฌธ์ž ์ •๋ ฌ์ด ์•„๋‹Œ ๋‹ค๋ฅธ ๋ฐฉ์‹์„ ์›ํ•˜๋ฉด ๋น„๊ต ํ•จ์ˆ˜๋ฅผ ์ •์˜ํ•ด์•ผํ•จ

// ํฌ๊ธฐ ์ˆœ์œผ๋กœ ๋น„๊ตํ•˜๋Š” ํ•จ์ˆ˜ ๋งŒ๋“ค์–ด์„œ sort์— ๋„˜๊ธฐ๊ธฐ
function compareNumeric(a, b) {
  if(a>b) return 1;
  if(a==b) return 0;
  if(a<b) return -1;
}

arr(sort(compareNumeric);
console.log(arr);	// [2, 3, 4, 21, 55]

 

reverse()

  • ๊ธฐ๋Šฅ : arr์˜ ์š”์†Œ๋ฅผ ์—ญ์ˆœ์œผ๋กœ ์ •๋ ฌ
  • ๋ฐ˜ํ™˜๊ฐ’ : ์žฌ์ •๋ ฌ๋œ ๋ฐฐ์—ด
let arr = [1, 2, 3, 4, 5];
arr.reverse();
alert(arr);	// 5, 4, 3, 2, 1

 

 


3. ์ƒˆ๋กœ์šด ๋ฐฐ์—ด ์ƒ์„ฑ : concat(), slice(), Spread Operator  

concat()

  • ๊ธฐ๋Šฅ : ์ธ์ž๋กœ ๋„˜๊ธด ๋ฐฐ์—ด/๊ฐ’๋“ค์„ ๊ธฐ์กด ๋ฐฐ์—ด์— ํ•ฉ์ณ, ์ƒˆ๋กœ์šด ๋ฐฐ์—ด์„ ์ƒ์„ฑ
  • ๋ฐ˜ํ™˜๊ฐ’ : ์ƒˆ๋กœ ์ƒ์„ฑ๋œ ๋ฐฐ์—ด
const arr = [1, 2, 3];
const newArr = arr.concat([4, 5]);

console.log(arr);	//[1, 2, 3]
console.log(newArr);	// [1, 2, 3, 4, 5]

 

slice()

  • ๊ธฐ๋Šฅ : ํŠน์ • ๋ฒ”์œ„์˜ ์›์†Œ๋ฅผ ์–•์€ ๋ณต์‚ฌํ•ด, ์ƒˆ๋กœ์šด ๋ฐฐ์—ด์„ ์ƒ์„ฑ (์ฐธ์กฐ๊ฐ€ ์œ ์ง€๋จ)
  • ๋ฐ˜ํ™˜๊ฐ’ : ์ƒˆ๋กœ ์ƒ์„ฑ๋œ ๋ฐฐ์—ด 
const obj = {};
const arr = [1, obj, 3];
const newArr = arr.slice(1, 2);
console.log(newArr[0] === obj);	// true

 

ํŽผ์นจ ์—ฐ์‚ฐ์ž (Spread Operator)

  • ๊ธฐ๋Šฅ : slice() ์—ฐ์‚ฐ์ž์™€ ๊ฐ™์Œ
const arr = [1, 2, 3];
const newArr = [...arr];
console.log(newArr);	// [1, 2, 3]

4. ๋ฐฐ์—ด ์›์†Œ ๋‹ค๋ฃจ๊ธฐ : map(), forEach(), filter() 

map()

  • ๊ธฐ๋Šฅ : '๋ชจ๋“  ์›์†Œ๋ฅผ ์ธ์ž๋กœ ๋ฐ›์€ ํ•จ์ˆ˜'๋ฅผ ์‹คํ–‰ํ•ด ํŠน์ • ํ˜•์‹์œผ๋กœ ๋ณ€๊ฒฝํ•˜์—ฌ ์ƒˆ๋กœ์šด ๋ฐฐ์—ด ์ƒ์„ฑ
  • ๋ฐ˜ํ™˜๊ฐ’ : ์ƒˆ๋กœ ์ƒ์„ฑ๋œ ๋ฐฐ์—ด
const arr = [1, 2, 3];
const newArr = arr.map(x => x + 1);
console.log(newArr);	// [2, 3, 4];
  • ๋ฐ˜ํ™˜๊ฐ’์ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์–ด๋–ค ๋ณ€์ˆ˜์— ๋ฐ˜ํ™˜๊ฐ’์— ๋„ฃ๊ณ  ์‹ถ์„ ๋•Œ ์ฃผ๋กœ ์‚ฌ์šฉํ•œ๋‹ค.

 

forEach()

  • ๊ธฐ๋Šฅ : '์ธ์ž๋กœ ๋ฐ›์€ ํ•จ์ˆ˜'๋ฅผ ๋ฐฐ์—ด์˜ ๋ชจ๋“  ์›์†Œ๋ฅผ ๋Œ€์ƒ์œผ๋กœ ์‹คํ–‰
const arr = [1, 2, 3];
const newArr = arr.forEach(x => console.log(x));

["Bilbo", "Gandalf", "Nazgul"].forEach((item, index, array) => {
  alert(`${item} is at index ${index} in ${array}`);
});
  • ์„ฑ๋Šฅ ๋ฌธ์ œ๋กœ for๋ฌธ์„ ์“ฐ๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ๋‹ค.
  • map๊ณผ ๋‹ค๋ฅด๊ฒŒ ๋ฐ˜ํ™˜๊ฐ’์ด ์—†๋‹ค.

 

 

filter()

  • ๊ธฐ๋Šฅ : '์ธ์ž๋กœ ๋ฐ›์€ ํ•จ์ˆ˜'์˜ ํ…Œ์ŠคํŠธ๋ฅผ ํ†ต๊ณผํ•˜๋Š” ์›์†Œ๋“ค๋กœ ์ƒˆ๋กœ์šด ๋ฐฐ์—ด ์ƒ์„ฑ
  • ๋ฐ˜ํ™˜๊ฐ’ : ์ƒˆ๋กœ ์ƒ์„ฑ๋œ ๋ฐฐ์—ด
const arr = [1, 2, 3];
const newArr = arr.filter(x => x != 1);
console.log(newArr);	// [2, 3]

 

 

5. ํŠน์ • ๊ฐ’ ์ฐพ๊ธฐ : indexOf(), lastIndexOf(), includes() 

indexOf(item)

  • ๊ธฐ๋Šฅ : ๋ฐฐ์—ด์— item์ด ํฌํ•จ๋˜์–ด ์žˆ๋Š”์ง€ ํƒ์ƒ‰
  • ๋ฐ˜ํ™˜๊ฐ’ : ํฌํ•จ๋  ๊ฒฝ์šฐ : ํ•ด๋‹น ์ธ์ž๊ฐ€ ์žˆ๋Š” ์ฒซ ๋ฒˆ์งธ ์ธ๋ฑ์Šค, ์—†์„ ๊ฒฝ์šฐ -1
let arr = [1, 2, 3, 1];
console.log(arr.indexOf(1));	// 0
console.log(arr.indexOf(5));	// -1

 

lastIndexOf()

  • ๊ธฐ๋Šฅ : ๋ฐฐ์—ด์— item์ด ํฌํ•จ๋˜์–ด ์žˆ๋Š”์ง€ ๋’ค์—์„œ๋ถ€ํ„ฐ ํƒ์ƒ‰
  • ๋ฐ˜ํ™˜๊ฐ’ : ํฌํ•จ๋  ๊ฒฝ์šฐ : ํ•ด๋‹น ์ธ์ž๊ฐ€ ์žˆ๋Š” ์ฒซ ๋ฒˆ์งธ ์ธ๋ฑ์Šค, ์—†์„ ๊ฒฝ์šฐ -1
let arr = [1, 2, 3, 1];
console.log(arr.lastIndexOf(1));	// 3
console.log(arr.lastIndexOf(5));	// -1

 

includes()

  • ๊ธฐ๋Šฅ : ๋ฐฐ์—ด์— item์ด ํฌํ•จ๋˜์–ด ์žˆ๋Š”์ง€ ์—ฌ๋ถ€๋งŒ ํ™•์ธ
  • ๋ฐ˜ํ™˜๊ฐ’ : ์žˆ์„ ๊ฒฝ์šฐ true, ์—†์„ ๊ฒฝ์šฐ false
let arr = [1, 2, 3, 1];
console.log(arr.includes(1));	// true
console.log(arr.includes(5));	// false

 

6. ๋ฐฐ์—ด ์ถœ๋ ฅํ•˜๊ธฐ : toString(arr)

toString() ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์š”์†Œ๋ฅผ ์‰ผํ‘œ๋กœ ๊ตฌ๋ถ„ํ•œ ๋ฌธ์ž์—ด์ด ๋ฐ˜ํ™˜๋œ๋‹ค.

let arr = [1, 2, 3];

alert( arr );	// 1, 2, 3

3. ์œ ์‚ฌ ๋ฐฐ์—ด ๊ฐ์ฒด

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ๋Š” ์ผ๋ฐ˜ ๊ฐ์ฒด๋ฅผ ๋ฐฐ์—ด์ฒ˜๋Ÿผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

์œ ์‚ฌ ๋ฐฐ์—ด ๊ฐ์ฒด๋Š” length ํ”„๋กœํผํ‹ฐ๋กœ ์–‘์˜ ์ •์ˆ˜ ๊ฐ’์„ ๊ฐ€์ง„ ๊ฐ์ฒด์—ฌ์•ผ ํ•œ๋‹ค.

// ์œ ์‚ฌ ๋ฐฐ์—ด ๊ฐ์ฒด ์˜ˆ์‹œ
const arr = {
  0: 'hi',
  1: 'my',
  2: 'name is',
  3: 'bdy',
  length: 4	// ํ”„๋กœํผํ‹ฐ๋กœ length: ์–‘์˜ ์ •์ˆ˜๋ฅผ ๊ฐ€์ง
};

// ์‹ค์ œ ์œ ์‚ฌ ๋ฐฐ์—ด ๊ฐ์ฒด arguments
function foo(a, b, c) {
  console.log(arguments[0], arguments[1], arguments[2]);	// 'a', 'b', 'c'
  console.log(arguments.length);	// 3
}

foo('a', 'b', 'c');

 

arr, arguments ๊ฐ์ฒด๋Š” ๋ฐฐ์—ด์ฒ˜๋Ÿผ ์ธ๋ฑ์Šค๋กœ ํ”„๋กœํผํ‹ฐ์— ์ ‘๊ทผํ•˜๋ฉฐ legnth๋ฅผ ๊ฐ€์ง€๋‚˜,

์œ ์‚ฌ ๋ฐฐ์—ด์ด๊ธฐ ๋•Œ๋ฌธ์— ๋ฐฐ์—ด ๋‚ด์žฅ ๋ฉ”์„œ๋“œ๋Š” ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋‹ค.

 

์ด๋Ÿด ๋•Œ ๋ฐฐ์—ด์˜ ๋‚ด์žฅ ๋ฉ”์„œ๋“œ๋ฅผ call(), apply() ํ•จ์ˆ˜์™€ ๊ฒฐํ•ฉํ•˜์—ฌ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

function foo(a, b, c) {
  Array.prototype.forEach.call(arguments, (arg) => {
    console.log(arg);	// 'a', 'b', 'c'
  });
}

foo('a', 'b', 'c');

์œ ์‚ฌ ๋ฐฐ์—ด ๊ฐ์ฒด๋Š” DOM์„ ๋‹ค๋ฃจ๋‹ค๋ณด๋ฉด ์ž์ฃผ ๋ณผ ์ˆ˜ ์žˆ๋Š” ํ˜•ํƒœ์˜ ๋ฐ์ดํ„ฐ์ด๋‹ค.

 

 

  • ์š”์ฆ˜์—๋Š” arguments๋Š” ๊ฑฐ์˜ ์•ˆ์“ฐ๊ณ  rest parameter(...)๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.
  • ์ด์ œ๋Š” ๋ ˆ๊ฑฐ์‹œ ์ฝ”๋“œ ์œ ์ง€๋ณด์ˆ˜ํ•  ๋•Œ๋‚˜ ์‚ฌ์šฉํ•œ๋‹ค๊ณ  ํ•œ๋‹ค.

4. for...of ๋ฐ˜๋ณต๋ฌธ

๋ฐฐ์—ด์„ ๊ฐ„ํŽธํ•˜๊ฒŒ ์ˆœํšŒํ•˜๋Š” ๋ฐ˜๋ณต๋ฌธ์ด๋‹ค.

๋ฐฐ์—ด์˜ ๊ธธ์ด๋งŒํผ ๋ฐ˜๋ณตํ•˜๋ฉฐ ๋ฐ˜๋ณต๋  ๋•Œ๋งˆ๋‹ค element์— ๋ฐฐ์—ด์˜ ์š”์†Œ๋ฅผ ํ• ๋‹นํ•œ๋‹ค.

let arr = [1, 2, 3, 4, 8];

for(let element of arr) {
  console.log(element);	// 1, 2, 3, 4, 8
}

 

๋ฌผ๋ก  ๊ฐ์ฒด์˜ ๋ชจ๋“  ํ”„๋กœํผํ‹ฐ๋ฅผ ๋„๋Š” for...in๋ฌธ์œผ๋กœ๋„ ๋ฐฐ์—ด์˜ ์š”์†Œ๋“ค์„ ๋™์ผํ•˜๊ฒŒ ์ถœ๋ ฅํ•  ์ˆ˜ ์žˆ์œผ๋‚˜,

๋ฐฐ์—ด์˜ ๋ฉ”์„œ๋“œ๋‚˜ length ํ”„๋กœํผํ‹ฐ ๋“ฑ์ด ํ• ๋‹น๋  ์ˆ˜๋„ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— for...of๋ฌธ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ๋” ์•ˆ์ „ํ•˜๋‹ค.

 

 

 

 

 

 

์ฐธ๊ณ 

๋”๋ณด๊ธฐ
๋ฐ˜์‘ํ˜•