해나아부지 개발일지

[책] 러닝 자바스크립트(3) - 배열, 객체와 배열의 쉼표, 맵과 셋 본문

Developers/JavaScript

[책] 러닝 자바스크립트(3) - 배열, 객체와 배열의 쉼표, 맵과 셋

__APPA 2020. 12. 14. 00:29

자바스크립트의 배열은 특수한 객체입니다. 일반적이 ㄴ객체와 달리 배열 콘텐츠에는 항상 순서가 있고, 키는 순차적인 숫자입니다. 배열은 유용한 메서드를 많이 가진 대단히 강력한 데이터 타입입니다.

배열

자바스크립트의 배열은 C언어의 효율적인 배열(indexed array)과 링크드 리스트(linked list)와 혼합된 것이다.

  • 배열의 크기가 고정되어 있지 않다.
  • 여러가지 데이터 타입을 가질 수 있다.
  • 시작 인덱스는 0이다.
const array1 = [1, 2, 3, 4]
const array2 = [1, 'two', 3, null]  //여러가지 타입이 들어가 있는 배열
const array3 = [
    "What the hammer?",
    "Dare its deadly terrors clasp?",
    "Is it funny?",
    ]
const array4 = [  //객체가 들어있는 배열
    { name: "Ruby", hardness: 9 },
    { name: "Diamond", hardness: 10 },
    { name: "Topaz", hardness: 8 },
    ]
const array5 = [  //배열이 들어있는 배열
    [1, 2, 3],
    [4, 5, 6],
    ]

객체와 배열의 쉼표

const arr = [
    "One",
    "Two",
    "Three",
    ]

 const obj = {
    one: 1,
    two: 2,
    three: 3,
    }

자바스크립트 문법에서는 마지막 쉼표를 허용했지만, 인터넷 익스플로러 초기 버전에서 마지막 쉼표를 쓰면 에러를 냈으므로 쓰는 프로그래머들이 많지 않다고 한다. 필자는 마지막 배열과 객체에서 잘내고 붙여넣는 일이 많고 객체 마지막에 프로퍼티를 추가하는 일도 많으므로 쓰는 것을 추천한다고 한다.

맵과 셋

ES6의 새로운 데이터 타입 : Map & Set
이들의 약한 짝인 WeakMap & WeakSet도 있다.

맵은 객체와 마찬가지로 키와 값을 연결하지만, 특정 상황에서 객체보다 유리한 부분이 있다.
셋은 배열과 비슷하지만 중복이 허용되지 않는다.
위크맵과 위크셋은 맵과 셋과 마찬가지로 동작하지만, 특정 상황에서 성능이 더 높아지도록 일부 기능을 제거한 버전이다.

Comments