단축 속성명

2025. 4. 28. 01:35·JavaScript

단축 속성명

단축 속성명(Shorthand Property Names)은 ECMAScript 2015 (ES6)에서 도입된 JavaScript 문법으로, 객체 리터럴(object literal)을 정의할 때 객체의 속성 이름(key)과 그 속성에 할당하려는 변수(또는 상수)의 이름이 동일한 경우 코드를 더 간결하게 작성할 수 있게 해주는 기능입니다.

핵심 규칙:

객체 리터럴 내에서 { 속성명: 변수명 }과 같이 작성해야 할 때, 만약 속성명과 변수명이 같다면, 간단히 { 변수명 } 이라고만 작성할 수 있습니다.

// ES6 이전
let x = 10;
let y = 20;

let point1 = {
  x: x, // 속성명 'x'와 변수명 'x'가 같음
  y: y  // 속성명 'y'와 변수명 'y'가 같음
};

console.log(point1); // { x: 10, y: 20 }

// ES6+ 단축 속성명 사용
let x = 10;
let y = 20;

let point2 = {
  x, // { x: x } 와 동일
  y  // { y: y } 와 동일
};

console.log(point2); // { x: 10, y: 20 }

 

 

주요 특징

  1. 간결성 (Conciseness): 코드의 길이를 줄여줍니다. 속성명: 변수명 반복을 피할 수 있어 타이핑이 줄어듭니다.
  2. 가독성 (Readability): 변수 이름이 해당 속성의 의미를 잘 나타낼 때, 코드가 더 깔끔하고 이해하기 쉬워질 수 있습니다. 불필요한 중복이 제거됩니다.
  3. 객체 리터럴에서만 사용: 함수 정의나 다른 문맥이 아닌, 객체를 {}를 사용해 직접 생성할 때 적용됩니다.
  4. 다른 속성과 혼용 가능: 일반적인 키: 값 형태의 속성과 함께 사용할 수 있습니다.
let name = "구름";
let type = "강아지";

let pet = {
  name,      // 단축 속성명 사용: { name: name } 과 동일
  type,      // 단축 속성명 사용: { type: type } 과 동일
  age: 3,    // 일반적인 속성 정의
  greeting: function() { // 메소드 정의 (단축 메소드명도 ES6 기능)
    console.log(`멍멍! 내 이름은 ${this.name}이야.`);
  }
};

console.log(pet);
// 출력:
// {
//   name: '구름',
//   type: '강아지',
//   age: 3,
//   greeting: [Function: greeting]
// }

pet.greeting(); // 출력: 멍멍! 내 이름은 구름이야.

 

JavaScript의 단축 속성명은 객체 리터럴을 만들 때 속성 이름과 변수 이름이 같다면 변수 이름만 적어서 { 변수명: 변수명 }을 대체하는 편리한 ES6+ 문법입니다. 코드의 간결성과 가독성을 높이는 데 도움이 됩니다.

저작자표시 (새창열림)

'JavaScript' 카테고리의 다른 글

객체 리터럴  (0) 2025.04.27
const -> 주소 재할당 금지  (0) 2025.04.24
for .. of 반복문  (1) 2025.04.13
배열의 범위 기반 for문, forEach()  (1) 2025.04.13
map을 이용한 배열의 각 요소 접근  (0) 2025.04.13
'JavaScript' 카테고리의 다른 글
  • 객체 리터럴
  • const -> 주소 재할당 금지
  • for .. of 반복문
  • 배열의 범위 기반 for문, forEach()
람팜팜~
람팜팜~
:)
  • 람팜팜~
    RumPumPum
    람팜팜~
  • 전체
    오늘
    어제
    • 전체 (123)
      • 🎵 일상 (2)
      • JAVA (5)
        • 김영한의 자바 입문 (3)
      • JavaScript (12)
      • ---------------------------.. (0)
      • [게임 개발] 포트폴리오 (2)
        • RPG (1)
        • 슈터-플랫포머 (1)
      • [게임 개발] 개발 일지 (28)
        • RPG (25)
        • TopDownProject (3)
      • [게임 개발] 언리얼엔진 공부 (9)
        • 이득우의 언리얼 프로그래밍 Part.1 (6)
        • 이득우의 언리얼 프로그래밍 Part.2 (1)
        • 개인 메모 (2)
      • [게임 개발] 알고리즘 공부 (60)
        • 프로그래머스 (8)
        • 백준 (52)
        • 개인 메모 (0)
      • [게임 개발] CPP 공부 (2)
        • 이것이 C++ 이다 (1)
        • Effective C++ (0)
        • Effective Modern C++ (0)
        • 홍정모 그래픽스 새싹코스 (1)
      • [게임 개발] CS 공부 (3)
  • 블로그 메뉴

    • 링크

      • Github
    • 공지사항

    • 인기 글

    • 태그

      메모리구조
      그리디
      dp
      dfs
      투포인터
      브루트포스
      context switching
      누적합
      스레드
      참조자
      우선순위 큐
      해시
      역참조
      프로세스
      문자열
      데드락
      슬라이딩 윈도우
    • 최근 댓글

    • 최근 글

    • hELLO· Designed By정상우.v4.10.3
    람팜팜~
    단축 속성명
    상단으로

    티스토리툴바