이론/JS

[JS] 객체의 property name(=key)

millfeel1298 2021. 2. 9. 17:02

property name(=key) 제약사항

  • 이름의 첫 문자는 숫자로 시작할 수 없다.
  • $와 _를 제외한 특수 문자가 없어야 한다.
  • 이름에 공백이 있을 경우, 따옴표를 사용한다.
  • 예약어를 사용할 수 없다.
  • 문자형이나 심볼형에 속하지 않은 값은 문자열로 자동형 변환한다.
let fruits = {
  apple: 'ok',
  1banana: '첫번째 문자에는 숫자가 있으면 안돼요', // -------------------------- 에러
  water_melon: 'ok',
  orange$: 'ok',
  korean-melon: '특수문자는 _, $ 외에는 쓸 수 없어요.', // --------------------- 에러
  sweet grape: '공백이 있을 경우, 따옴표를 사용해야 한다.', // --------- 에러
  'sweet grape': 'ok'
};

계산된 프로퍼티

객체를 만들 때 객체 리터럴 안의 property name이 대괄호로 둘러싸여 있는 경우

*대괄호 표기법을 모르는 경우

let fruit = prompt('어떤 과일을 구매하시겠습니까?');

let bag = {
    [fruit] : 5
};
let num = {
  [1+2] : 'name은 3이다.' //대괄호에 표현식은 계산이 된 뒤 문자열로 변환된다.
};

num['3'];
num[3]; // 문자열으로 자동 형변환

단축 프로퍼티

property value를 기존 변수에서 받아와 사용하는 경우가 종종있다.

function makeUser(name, age) {
  return { 
    name : name,
    age : age
  } 
}

let user = makeUser('john', 30);
user; // {name: "john", age: 30}

property name와 value의 변수가 동일하면 아래와 같이 생략할 수 있다.

function makeUser(name, age) {
  return {
    name // ----------------------------------------- 생략
    age // ------------------------------------------ 생략
  }
}
let user = makeUser('john', 30);
user; // {name: "john", age: 30}

[공부 좌표]

객체

 

[참고]

객체의 표기법