선언: var nums = new Array();
nums.push(1);
alert(nums); //1
nums.push(2);
alert(nums); //1,2
nums.push(3);
alert(nums); //1,2,3
을 하게되면, 카드가 쌓이는것 처럼 1, 2, 3 순으로 쌓인다.
var n1 = nums.pop();
alert(nums); //1,2
var n2 = nums.pop();
alert(nums); //1
var n3 = nums.pop();
alert(nums); //empty
을 하게되면, 맨 위 카드부터 3, 2, 1 순으로 빠지고 사라진다.
즉, Stack은 LIFO 형태 = Last In - First Out.
마지막에 들어온것이 가장 먼저 나간다.
nums[0] = 1;
alert(nums); //1
nums[1] = 2;
alert(nums); //1,2
nums[2] = 3;
alert(nums) //1,2,3
nums = [1,2,3]이라는 배열이 완성된 것이다.
alert(nums[0]) //1
alert(nums[1]) //2
alert(nums[2]) //3
위 처럼, 배열의 길이보다 작은 index를 이용하여 값을 꺼낼수 있다.
그리고 배열은 값을 꺼내도 값이 사라지지 않는다!
var nums = new Array(); //빈 배열 생성
var nums = new Array(5); //크기가 5인 배열 생성
var nums = new Array(5,10,15); // 5, 10, 15를 초기값으로 갖는 배열 생성
var nums = new Array(5,10,15,"15");
다른언어에서는 같은 데이터타입의 배열만 가능하지만,
JavaScript에서는 상관X
그래서 typeof를 사용해서 어떤 형태의 값인지 확인해야함.
alert(typeof nums[4]); //String
또한, 배열안에 배열이 올 수 있다. 이때, 3을 꺼내기 위해선?
var nums = new Array(5,10,15,"15",new Array(1,2,3));
alert(nums[4][2]); //3
var nums = new Array(5,10,15,"hello");
nums.splice(1); //index 1번부터 전부 삭제 = [5]
nums.splice(1,1); //1번부터 1개 삭제 = [5,10,"hello"]
nums.splice(1,2); //1번부터 2개 삭제 = [5,"hello"]
nums.splice(3,1,"hi"); //3번을 삭제하고 "hi"를 넣음 = [5,10,15,"hi"]
nums.splice(3,0,"hi"); //3번째 위치에 삭제없이 "hi"가 삽입 = [5,10,15,"hi","hello"]