배열을 사용하는 이유는 순서가 있는 컬렉션을 다루기에 좋은 자료구조이다.
큐는 선입선출(First In First Out), 스택은 후입선출(Last In First Out)이다.
배열의 앞에 무언가를 해주는 메서드엔 shift()(배열에서 맨 앞값을 제거하면서 반환함), unshift('추가요소')가 있고,
배열의 끝에 무언가를 해주는 메서드엔 pop()(배열에서 맨 끝요소를 제거하면서 반환함), push('추가요소')가 있다.
큐는 shift(), push() 연산을 사용하고, 스택은 push(), pop() 연산을 사용한다.
맨 앞에 무언가를 해주는 요소보다 맨 뒤에 무언가를 해주는 요소가 더 빠르다.
왜냐하면 자료구조상 맨 앞의 요소를 제거하게 되면, 다음의 단계가 필요하다.
step1. 요소를 제거한다.
step2. arr.length-1만큼 이동한다.
그래서 총 arr.length만큼의 단계가 필요하다.
하지만 맨 뒤의 요소를 제거하게 되면, 위의 step2는 필요하지 않게 되므로 훨씬 빠를 수 밖에 없다는 결론에 이른다.
arr.slice()로 인수를 하나도 넘기지 않고 호출하여 arr의 복사본을 만들 수 있다.
sort, reverse, splice