Bibi's DevLog ๐Ÿค“๐ŸŽ

[์ธํ”„๋Ÿฐ] Javascript ์ž…๋ฌธ - ๋ฐฐ์—ด๊ณผ ๋ฌธ์ž์—ด1 [ ๋ฐฐ์—ด, ์›์†Œ, ์ธ๋ฑ์Šค, undefined, typeof, length, immutable/mutable, ๊ฐ์ฒด/์†์„ฑ/๋ฉ”์†Œ๋“œ, push()/pop(), unshift()/shift() ] ๋ณธ๋ฌธ

ํ”„๋กœ๊ทธ๋ž˜๋ฐ/Javascript ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ

[์ธํ”„๋Ÿฐ] Javascript ์ž…๋ฌธ - ๋ฐฐ์—ด๊ณผ ๋ฌธ์ž์—ด1 [ ๋ฐฐ์—ด, ์›์†Œ, ์ธ๋ฑ์Šค, undefined, typeof, length, immutable/mutable, ๊ฐ์ฒด/์†์„ฑ/๋ฉ”์†Œ๋“œ, push()/pop(), unshift()/shift() ]

๋น„๋น„ bibi 2020. 10. 12. 18:27
* ์ด ๊ธ€์€ ์ธํ”„๋Ÿฐ์—์„œ ์ œ๊ณตํ•˜๋Š” ํ˜ธ๋ˆ…์Šค๋‹˜์˜ ์œ ๋ฃŒ ๊ฐ•์˜ '์‰ฝ๊ณ  ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ๋ฐฐ์›Œ๋ณด๋Š” Javascript ์ž…๋ฌธ - ์ฝ”๋“œ์Šค์ฟผ๋“œ ๋งˆ์Šคํ„ฐ์ฆˆ ์ฝ”์Šค ๋ ˆ๋ฒจ1'๋ฅผ ๋“ฃ๊ณ  ๊ณต๋ถ€ํ•˜๋ฉฐ ์ •๋ฆฌํ•œ ๊ธ€์ž…๋‹ˆ๋‹ค. ๊ฐ•์˜ ๋‚ด์šฉ์— ๋”ํ•ด, ์ œ๊ฐ€ ํ•„๊ธฐํ•˜๊ณ  ๊ตฌ๊ธ€๋งํ•œ ๋‚ด์šฉ์ด ์ •๋ฆฌ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ดˆ๋ณด์ธ ์ œ๊ฐ€ ์ดํ•ดํ•œ ๋Œ€๋กœ ์ •๋ฆฌํ–ˆ๊ธฐ ๋•Œ๋ฌธ์—, ๋ถ€์ •ํ™•ํ•œ ๋‚ด์šฉ์ด ์žˆ์„ ์ˆ˜ ์žˆ์Œ์„ ๊ฐ์•ˆํ•ด ์ฃผ์‹œ๊ธธ ๋ฐ”๋ž๋‹ˆ๋‹ค. ๊ฐ•์˜๋ฅผ ๋“ฃ๊ณ  ๋‚ด์šฉ์„ ์ •๋ฆฌํ•œ ๊ธ€์ด๊ธฐ ๋•Œ๋ฌธ์— ๋ฌธ์ œ๊ฐ€ ๋˜์ง€ ์•Š๋Š”๋‹ค๋Š” ์ธํ”„๋Ÿฐ ์ธก ๋‹ต๋ณ€์„ ๋ฐ›์€ ์ ์ด ์žˆ์œผ๋‚˜(https://bibi6666667.tistory.com/37), ์ €์ž‘๊ถŒ์ƒ ๋ฌธ์ œ๊ฐ€ ๋œ๋‹ค๋ฉด ๋ณดํ˜ธ ๋ชจ๋“œ(๋น„๊ณต๊ฐœ)๋กœ ์ „ํ™˜ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

 

๋ฐฐ์—ด๊ณผ ๋ฌธ์ž์—ด 1

 

๋ฐฐ์—ด (Array)

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ "๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉํ•˜๋Š” ์ž๋ฃŒ๊ตฌ์กฐ"์˜ ํ•˜๋‚˜.
๋”ฐ๋ผ์„œ ๊ต‰์žฅํžˆ ์ค‘์š”ํ•˜๋‹ค! (๋ฐฐ์—ด, ํ•ด์‰ฌ๊ฐ€ ๊ฐ€์žฅ ์ค‘์š”)
์ฃผ๋กœ ๊ฐ™์€ ์ข…๋ฅ˜์˜ ๊ฐ’ ์—ฌ๋Ÿฌ ๊ฐœ๋ฅผ ๋ฌถ์–ด์„œ, ์ €์žฅํ•˜๊ณ  ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
(๊ฐ™์€ ์šฉ๋„, ๊ฐ™์€ ํƒ€์ž…์˜ ๊ฐ’๋“ค)

๋ฐฐ์—ด ์›์†Œ/์š”์†Œ(element)

๋ฐฐ์—ด์„ ๊ตฌ์„ฑํ•˜๋Š” ๊ฐ๊ฐ์˜ ๊ฐ’.

โ€ป์ฐธ๊ณ ๋กœ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ๋ฐฐ์—ด์€ "๊ฐ์ฒดObject"์ž…๋‹ˆ๋‹ค.
(๋ฐฐ์—ด๊ฐ์ฒด array object = ๋ฐฐ์—ด์ด๋ฉด์„œ ๊ฐ์ฒด์ด๋‹ค. ์ผ๋ฐ˜ ๊ฐ์ฒด์™€๋Š” ์•ฝ๊ฐ„ ๋‹ค๋ฅด๋‹ค.)
๊ฐ์ฒด์•  ๋Œ€ํ•ด์„œ๋Š” ๋’ค์—์„œ ๋‹ค์‹œ ๋ฐฐ์›๋‹ˆ๋‹ค.
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array(๋‚˜์ค‘์— ๋‹ค ์ดํ•ด๋  ๋‚ด์šฉ์ด๋‹ˆ ์ฐธ๊ณ ๋งŒ!)

 

Array

JavaScript Array ์ „์—ญ ๊ฐ์ฒด๋Š” ๋ฐฐ์—ด์„ ์ƒ์„ฑํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ๋ฆฌ์ŠคํŠธ ํ˜•ํƒœ์˜ ๊ณ ์ˆ˜์ค€ ๊ฐ์ฒด์ž…๋‹ˆ๋‹ค.

developer.mozilla.org

 


 

๋ฐฐ์—ด ๋งŒ๋“ค๊ธฐ 1

var arr = []; // ๋น„์–ด์žˆ๋Š” ๋ฐฐ์—ด์„ ์„ ์–ธํ•จ.
typeof arr // "object". ์ฆ‰ ๋ฐฐ์—ด๋„ ๊ฐ์ฒด์ด๋‹ค.


๋ฐฐ์—ด ๋งŒ๋“ค๊ธฐ(์„ ์–ธํ•˜๊ธฐ)

๋Œ€๊ด„ํ˜ธ ์•ˆ์— ๋ฐฐ์—ด ์š”์†Œ๋“ค์„ ์‰ผํ‘œ๋กœ ๊ตฌ๋ถ„ํ•ด ๋‚˜์—ดํ•˜๋Š” ๋ฐฉ์‹.

var arr = [๋ฐฐ์—ด์š”์†Œ1, ๋ฐฐ์—ด์š”์†Œ2, ...];
var arr2 = [50, 60, 70, 99];
arr2; // โ–ถ (4) [50, 60, 70, 99]

โ–ถ (4) [50, 60, 70, 99]
(4) ๋Š” ๋ฐฐ์—ด์˜ ์›์†Œ๊ฐ€ 4๊ฐœ์ž„์„ ์˜๋ฏธ.
[50, 60, 70, 99]๋Š” ์ด ๋ฐฐ์—ด์˜ ํ˜•ํƒœ๋ฅผ ๋ณด์—ฌ์ฃผ๋Š” ๊ฒƒ.

var scores = [50, 60, 70]; 
console.log(scores); 
console.log(scores.length);

 

 


 

์ธ๋ฑ์Šค๋ฅผ ์ด์šฉํ•ด์„œ ๋ฐฐ์—ด์˜ ์›์†Œ ์ฝ๊ธฐ (๋ฐฐ์—ด์˜ ์ฐธ์กฐ)

์ธ๋ฑ์Šค index = ๋ฐฐ์—ด์—์„œ์˜ ์œ„์น˜๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋Š” ์ˆซ์ž. 

๋ฐฐ์—ด์ด๋ฆ„[์ธ๋ฑ์Šค];
๋ฐฐ์—ด์˜ ๊ฐ ์š”์†Œ๋ฅผ ์ธ๋ฑ์Šค๋กœ ์ฐธ์กฐํ•œ๋‹ค.
๋ฐฐ์—ด์˜ ์ฒซ ๋ฒˆ์งธ ์š”์†Œ์˜ ์ธ๋ฑ์Šค = [0]
๋ฐฐ์—ด์˜ ๋‘ ๋ฒˆ์จฐ ์š”์†Œ์˜ ์ธ๋ฑ์Šค = [1]..

์ปดํ“จํ„ฐ๋Š” ํ•ญ์ƒ 0๋ถ€ํ„ฐ ์„ผ๋‹ค. 
์ฆ‰ 0๋ฒˆ์งธ = 1๋ฒˆ์งธ, 1๋ฒˆ์งธ = 2๋ฒˆ์งธ, 4๋ฒˆ์งธ = 5๋ฒˆ์งธ..
์—†๋Š” ๊ฐ’์„ ์ฐพ์œผ๋ ค๊ณ  ํ•˜๋ฉด undefined (๊ฐ’์ด ์ •์˜๋˜์ง€ ์•Š์Œ)๊ฐ€ ์ถœ๋ ฅ๋œ๋‹ค.

scores[0]; // 50์ด ์ถœ๋ ฅ๋œ๋‹ค.
scores[3]; // undefined๊ฐ€ ์ถœ๋ ฅ๋œ๋‹ค.  70์„ ์ถœ๋ ฅํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” scores[2];๋กœ ์ž…๋ ฅํ•ด์•ผ ํ•œ๋‹ค.

 

โ€ป undefined๋ž€?

: ๋Œ€์ƒ์€ ์กด์žฌํ•˜์ง€๋งŒ ๊ฐ’์ด ์—†์Œ. (๊ฐ’์ด ์ •์˜๋˜์ง€ ์•Š์Œ)

c // ์—๋Ÿฌ. c is not defined

var c;
c // ์—๋Ÿฌ ๋Œ€์‹  undefined. c๋ผ๋Š” ๋Œ€์ƒ์€ ์กด์žฌํ•˜์ง€๋งŒ ๊ฐ’์ด ์ •์˜๋˜์ง€ ์•Š์Œ.

 

 

๋ฐฐ์—ด์— ๊ฐ’ ์“ฐ๊ธฐ(๋ฐฐ์—ด์˜ ์š”์†Œ ๊ฐ’ ์ƒ์„ฑ & ์ˆ˜์ •ํ•˜๊ธฐ)

๋ฐฐ์—ด์ด๋ฆ„[์ธ๋ฑ์Šค] = ๊ฐ’;
ํ•ด๋‹น ๋ฐฐ์—ด์˜ ์ธ๋ฑ์Šค ๋ฒˆํ˜ธ์— ์šฐํ•ญ์˜ ๊ฐ’์ด ๋“ค์–ด๊ฐ„๋‹ค.

 

scores[0] = 100; 
scores[9] = 50;
var arr3 = [2, 4, 6, 8, 10];
arr3[0] // 2
arr[5] // undefined. '10'์€ [4]๋ฒˆ์งธ ๊ฐ’์ด๋‹ค (์ปดํ“จํ„ฐ๋Š” 0๋ฒˆ์งธ๋ถ€ํ„ฐ ์‹œ์ž‘)
arr[4] // 10

 

๋ฐฐ์—ด ๋งŒ๋“ค๊ธฐ 2

var a = []; a[0] = 2; a[1] = 4;

var a = []; 
a[0] = 2; 
a[1] = 4;

๋น„์–ด ์žˆ๋Š” ๋ฐฐ์—ด์„ ๋งŒ๋“  ๋’ค 0๋ฒˆ์งธ, 1๋ฒˆ์งธ, 2๋ฒˆ์งธ .. ๊ฐ’์„ ์‚ฝ์ž…ํ•˜๋Š” ๊ฒƒ๋„ ๊ฐ€๋Šฅํ•˜๋‹ค.

โ€ป a[0] = 10, a[1] = 20, a[4] = 100 ์„ ์ž…๋ ฅํ•˜๋ฉด ์–ด๋–ป๊ฒŒ ๋ ๊นŒ?
-> a = [10, 20, empty *2, 100]์ด๋ผ๋Š” ๋ฐฐ์—ด์ด ์ƒ์„ฑ๋œ๋‹ค.
์ •์˜ํ•˜์ง€ ์•Š์€ 2๋ฒˆ์งธ, 3๋ฒˆ์งธ ๊ฐ’์€ empty๋กœ ๋“ค์–ด๊ฐ€๊ณ ,
a[2] = a[3] = undefined๋กœ ์ถœ๋ ฅ๋œ๋‹ค.

 


 

๋ฐฐ์—ด์˜ ํƒ€์ž… ์•Œ์•„๋ณด๊ธฐ

typeof ๋Œ€์ƒ;
๋Œ€์ƒ์˜ ํƒ€์ž…(์ž๋ฃŒํ˜•)์„ ์•Œ๋ ค์คŒ.
์ˆซ์ž = number, ๋ฌธ์ž์—ด = string, undefined = undefinedํƒ€์ž… ..

 

typeof scores 
typeof scores[0]

 

๋ฐฐ์—ด์˜ ๊ธธ์ด ๊ตฌํ•˜๊ธฐ

๋ฐฐ์—ด์ด๋ฆ„.length;
๋ฐฐ์—ด์˜ ๊ธธ์ด = ์›์†Œ์˜ ๊ฐฏ์ˆ˜๋ฅผ ๊ตฌํ•ด ์คŒ.
scores.length;
โ€ป  a = [10, 20, empty *2, 100] ์˜ ๊ธธ์ด๋Š” ์–ด๋–ป๊ฒŒ ๋‚˜์˜ฌ๊นŒ?
-> a.length; ์˜ ๊ฒฐ๊ณผ๋Š” 5์ด๋‹ค.
์ฆ‰ ๋น„์–ด ์žˆ๋Š” ์ž๋ฆฌ๋„ ๋ฐฐ์—ด์˜ ์›์†Œ๋กœ ์ณ ์ค€๋‹ค.
โ€ป  x = [1]
x.length = 10 ์œผ๋กœ ์ •์˜ํ•˜๋ฉด ์–ด๋–ป๊ฒŒ ๋ ๊นŒ?
-> x = [1, empty * 9].
์ฆ‰ empty๋กœ ๋นˆ ์ž๋ฆฌ๋ฅผ ์ฑ„์›Œ ๋ฐฐ์—ด์˜ ๊ธธ์ด๊ฐ€ ๋Š˜์–ด๋‚œ๋‹ค.

 

๋ฐฐ์—ด์˜ ๋งˆ์ง€๋ง‰ ์›์†Œ๋ฅผ ์ฝ์–ด ์˜ค๋ ค๋ฉด?

๋ฐฐ์—ด์ด ๋งค์šฐ ๊ธธ ๋•Œ, ๋งˆ์ง€๋ง‰ ์›์†Œ๋ฅผ ์ฝ์–ด์˜ค๊ณ  ์‹ถ๋‹ค๋ฉด??

์˜ˆ๋ฅผ ๋“ค์–ด ๊ธธ์ด๊ฐ€ 6์ธ ๋ฐฐ์—ด var a=[1, 2, 3, 4, 5, 6]; ์—์„œ ๋งˆ์ง€๋ง‰ ์›์†Œ๋Š” a[5] = 6.
์ฆ‰ ๋งˆ์ง€๋ง‰ ์›์†Œ์˜ ์ธ๋ฑ์Šค์ธ ๋ฐฐ์—ด์˜ ๊ธธ์ด -1์„ ํ™œ์šฉํ•œ๋‹ค.
-> ๋ฐฐ์—ด์ด๋ฆ„[๋ฐฐ์—ด์ด๋ฆ„.length -1];
scores[scores.length - 1];
๊ฐ™์€ ๋ฐฉ์‹์œผ๋กœ, ๋ฐฐ์—ด์˜  ๋งจ ๋’ค์—์„œ ๋‘ ๋ฒˆ์งธ ์›์†Œ๋ฅผ ์ฝ์–ด์˜ค๊ณ  ์‹ถ๋‹ค๋ฉด??
-> ๋ฐฐ์—ด์ด๋ฆ„[๋ฐฐ์—ด์ด๋ฆ„.length -2];

 


 

๋ฌธ์ž์—ด๊ณผ ๋ฐฐ์—ด

  • ๋ฌธ์ž์—ด๊ณผ ๋ฐฐ์—ด์€ ๋น„์Šทํ•œ ์„ฑ์งˆ์„ ๋งŽ์ด ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์• ์ดˆ์— ๋ฌธ์ž์—ด = '๋ฌธ์ž์˜ ๋ฐฐ์—ด' ์ด๋ผ๋Š” ๋œป์ด๊ธฐ ๋•Œ๋ฌธ. ๋น„์Šทํ•  ์ˆ˜ ๋ฐ–์— ์—†๋‹ค.

but ์•Œ์•„๋‘ฌ์•ผ ํ•  ๋ฌธ์ž์—ด๊ณผ ๋ฐฐ์—ด์˜ ์ฐจ์ด์ 

  • ๋ฌธ์ž์—ด: Immutable ๋ฐ”๊ฟ€ ์ˆ˜ ์—†๋‹ค.
  • ๋ฐฐ์—ด: Mutable ๋ฐ”๊ฟ€ ์ˆ˜ ์žˆ๋‹ค.

์ฆ‰ ๋ฌธ์ž์—ด์€ ํ•œ๋ฒˆ ์„ ์–ธํ•ด ๋‘๋ฉด ์ผ๋ถ€๋ฅผ ์ธ๋ฑ์Šค๋กœ ์ˆ˜์ •ํ•  ์ˆ˜ ์—†์ง€๋งŒ, ๋ฐฐ์—ด์€ ์ผ๋ถ€๋ฅผ ์ธ๋ฑ์Šค๋กœ ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.
( ์ผ๋‹จ์€ ์ด๋Ÿฐ ์†์„ฑ์ด ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ์•„๋‘๊ณ  ๋„˜์–ด๊ฐ€๊ธฐ )

  • ๋ฐฐ์—ด์˜ ์†์„ฑ๊ณผ ๋ฉ”์†Œ๋“œ๋ฅผ ๋ฌธ์ž์—ด์—๋„ ํ…Œ์ŠคํŠธํ•ด๋ณด์„ธ์š”.

โ€ปํ…Œ์ŠคํŠธ ์˜ˆ์ œ

var str = "hello";
str.length // 5
str[0] // "h"

// ์ด๋•Œ..
str[0] = "k" // ๋กœ ์žฌ์ •์˜ํ•˜์—ฌ "hello"๋ฅผ "kello"๋กœ ๋ฐ”๊ฟ€ ์ˆ˜ ์žˆ๋Š”๊ฐ€?

str; // "hello" 
// ์•ˆ ๋œ๋‹ค. ๋ฌธ์ž์—ด์€ immutable ์ฆ‰ ๋ณ€ํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ.

//////////////////////////////////

var arr = str.split("");
arr = ["h", "e", "l", "l", "o"]; // "hello"์˜ ๊ฐ ๊ธ€์ž๋ฅผ ๋‹ด์€ ๋ฐฐ์—ด๋กœ ๋งŒ๋“ฆ.

// ์ด๋•Œ..
arr[0] = "k" // ๋กœ ์žฌ์ •์˜ํ•˜์—ฌ "hello"๋ฅผ "kello"๋กœ ๋ฐ”๊ฟ€ ์ˆ˜ ์žˆ๋Š”๊ฐ€?

arr; // ["k", "e", "l", "l", "o"];
// ๋œ๋‹ค. ๋ฐฐ์—ด์€ mutable ์ฆ‰ ๋ณ€ํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ.

 

 


 

๋ฐฐ์—ด์˜ ๋ฉ”์†Œ๋“œ๋“ค 1

์ฐธ๊ณ  : ๊ฐ์ฒด, ์†์„ฑ, ๋ฉ”์†Œ๋“œ์˜ ๊ฐœ๋… ์ดํ•ด bamtol.net/v5/bbs/board.php?bo_table=pp_js&wr_id=84

๊ฐ์ฒดobject๋Š” ์†์„ฑproperty๊ณผ ๋ฉ”์†Œ๋“œmethod๊ฐ€ ์žˆ๋‹ค.

-๋ชจ๋“  ๊ฐ์ฒด๋Š” ์†์„ฑ(property, ํ”„๋กœํผํ‹ฐ) ์„ ๊ฐ€์ง„๋‹ค. 
(ex. window๊ฐ์ฒด๋Š” location๋“ฑ์˜ ์†์„ฑ์„, img๊ฐ์ฒด๋Š” width, height ๋“ฑ์˜ ์†์„ฑ์„ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋‹ค.

-๊ฐ์ฒด์˜ ๋™์ž‘๊ณผ ๊ด€๋ จ๋œ ๊ฒƒ์ด ๋ฉ”์†Œ๋“œ(method, ๋ฉ”์„œ๋“œ)์ด๋‹ค.
(ex. window๊ฐ์ฒด์— alert() ๋ฉ”์†Œ๋“œ๋ฅผ ์ถ”๊ฐ€ํ•ด ์œˆ๋„์šฐ ์ฐฝ์—์„œ ๊ฒฝ๊ณ ์ฐฝ์„ ์—ด์–ด์ค„ ์ˆ˜ ์žˆ๋‹ค.)

์˜ˆ๋ฅผ ๋“ค์–ด..
"ํ† ๋ผ"๋ผ๋Š” ๊ฐ์ฒด๊ฐ€ ์žˆ๋‹ค๋ฉด,
์ด ๊ฐ์ฒด์˜ ์†์„ฑ์—๋Š” "์ƒ‰๊น”=ํฐ์ƒ‰", "๊ท€=๊ธธ๋‹ค"  ๋“ฑ์ด ์žˆ์„ ๊ฒƒ.
์ด ๊ฐ์ฒด์˜ ๋ฉ”์†Œ๋“œ๋Š” "๋›ฐ์–ด๋‹ค๋‹Œ๋‹ค", "ํ’€์„ ๋จน๋Š”๋‹ค" ๋“ฑ์ด ์žˆ์„ ๊ฒƒ. 

๋ฐฐ์—ด๋„ ๊ฐ์ฒด์ด๋ฏ€๋กœ ์†์„ฑ๊ณผ ๋ฉ”์†Œ๋“œ๋ฅผ ๊ฐ€์ง„๋‹ค.
์ง€๊ธˆ์€ ๋ฐฐ์—ด์˜ ๋ฉ”์†Œ๋“œ ์ค‘ ์œ ์šฉํ•œ 4๊ฐ€์ง€๋งŒ ์•Œ์•„๋ณผ ๊ฒƒ.

 

push() <-> pop()

push(value);
๋งจ ๋’ค์— ๊ฐ’์„ ๋„ฃ๋Š” ๋ฉ”์„œ๋“œ.
๋ฐฐ์—ด์˜ ๋งˆ์ง€๋ง‰ ์›์†Œ๋กœ value๋ฅผ ์ƒˆ๋กœ ์‚ฝ์ž…ํ•ฉ๋‹ˆ๋‹ค.
var b = [];
b.push(1)
b; // [1]
// ๋น„์–ด ์žˆ๋Š” ๋ฐฐ์—ด b์— 1์ด๋ผ๋Š” ์›์†Œ๋ฅผ ๋ฐ€์–ด๋„ฃ์Œ.

b.push(2)
b; // [1, 2]
// ๋ฐฐ์—ด b์˜ ๋งจ ๋’ค์— 2๋ผ๋Š” ์›์†Œ๋ฅผ ๋ฐ€์–ด๋„ฃ์Œ.

b.push(3)
b.push(3)
b; // [1, 2, 3, 4]

 

pop();
๋งจ ๋’ค์˜ ๊ฐ’์„ ๋ฝ‘๋Š” ๋ฉ”์„œ๋“œ.
push()์˜ ๋ฐ˜๋Œ€ ๊ฐœ๋….
๋ฐฐ์—ด์˜ ๋งˆ์ง€๋ง‰ ์›์†Œ๋ฅผ ๋นผ์„œ ๋ณ€์ˆ˜์— ๋„ฃ์–ด ์ค๋‹ˆ๋‹ค.
์ด ๋•Œ ๋ฐฐ์—ด์˜ ๊ธธ์ด๋Š” 1 ๊ฐ์†Œํ•ฉ๋‹ˆ๋‹ค.
b = [1, 2, 3, 4];
b.pop(); // 4๊ฐ€ ์ถœ๋ ฅ. 
// b๋ผ๋Š” ๋ฐฐ์—ด์˜ ๋งจ ๋ ์›์†Œ ํ•˜๋‚˜๋ฅผ ๋ฝ‘์•„์˜ด.

// .pop()๋กœ ๋ฝ‘์•„ ์˜จ ๊ฒƒ์„ ํ™œ์šฉํ•˜๋ ค๋ฉด, ๋ณ€์ˆ˜๋ฅผ ์ƒˆ๋กœ ์ •์˜ํ•ด ๊ฑฐ๊ธฐ์— ๋„ฃ์–ด์ฃผ๋ฉด ๋œ๋‹ค.
b = [1, 2, 3];
var x = b.pop();
x; // 3
b = [1, 2]; 
//๋ฌธ์ œ?
b = []; // ๋น„์–ด ์žˆ๋Š” ๋ฐฐ์—ด.
b.pop(); //์˜ ๊ฒฐ๊ณผ๋Š”? undefined ์ด๋‹ค. ๊บผ๋‚ผ ๊ฒŒ ์—†์œผ๋ฏ€๋กœ..

 

์Šคํƒ(์ ‘์‹œ ๋”๋ฏธ๋ฅผ ์Œ“์•„์„œ ์œ„์—์„œ ํ•˜๋‚˜์”ฉ ๋นผ๋Š” ๊ฒƒ)์ฒ˜๋Ÿผ ๋™์ž‘ํ•˜๋Š”๋ฐ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

์Šคํƒ์— ๋Œ€ํ•ด ๊ฐ์ž ๊ฒ€์ƒ‰ํ•ด ๋ณด์„ธ์š”.

 

shift() <-> unshift()

push, pop๊ณผ ๋ฐ˜๋Œ€๋กœ ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค.

unshift(val);
๋งจ ์•ž์— ๊ฐ’์„ ๋„ฃ๋Š” ๋ฉ”์„œ๋“œ.
๋ฐฐ์—ด์˜ ๋งจ ์•ž์— ์ƒˆ๋กœ์šด ๊ฐ’val์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.
var b = [100]; // b๋Š” 100์ด๋ผ๋Š” ์›์†Œ ํ•˜๋‚˜๋ฅผ ๊ฐ–๋Š” ๋ฐฐ์—ด.

b.unshift(50); // 2 (๋งจ ์•ž์— 50์„ ๋„ฃ์€ ๋’ค b์˜ ์›์†Œ์˜ ๊ฐฏ์ˆ˜, ์ฆ‰ ๊ธธ์ด๋ฅผ ์•Œ๋ ค์ฃผ๋Š” ๊ฒƒ)
b; // [50, 100]

b.unshift(30); // 3
b; // [30, 50, 100]

b.unshift(10); // 4
b; // [10, 30, 50, 100]

 

shift();
๋งจ ์•ž์˜ ๊ฐ’์„ ๋ฝ‘๋Š” ๋ฉ”์„œ๋“œ.
unshift()์˜ ๋ฐ˜๋Œ€ ๊ฐœ๋….
๋ฐฐ์—ด์˜ ๋งจ ์•ž์˜ ์›์†Œ๋ฅผ ๋นผ์„œ ๋ณ€์ˆ˜์— ๋„ฃ์–ด ์ค๋‹ˆ๋‹ค.
var b = [10, 30, 50, 100];

x = b.shift(); // 10 (๋งจ ์•ž์—์„œ ๋ฝ‘์•„์˜จ ๊ฐ’ ์ถœ๋ ฅ)
x; // 10
b; // [30, 50, 100]