본문 바로가기
IT 개발/JavaScript

ES6의 향상된 객체 문법 알아보기 - 단축 속성명, 속성 계산명, 비구조화 할당

by Love of fate 2021. 9. 4.
728x90
반응형

● ES6부터 추가된 단축 속성명으로 객체를 정의하는 방법

 

ES6에 새로 추가된 JavaScript 기능인 단축 속성명을 활용하여, 객체의 속성을 좀 더 간단하게 정의할 수 있다. 

객체 속성을 리터럴로 정의하기 위해서는 키 : 값으로 작성해야 했다. 단축 속성명은 변수가 미리 준비되어 있는 경우 활용 가능하며, 변수명으로 속성의 키와 값을 한번에 정의할 수 있다. 이는 객체 리터럴 선언 코드를 더 짧고 가독성 있게 만들어 준다. 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title></title>
</head>
<script type="text/javascript">
 
    // {변수명}
 
    var address = 'Seoul';
    var member = {};
 
    var addFamily = function (age, name, role){
        this.member[role] = {age, name};
    };
 
    var getHeadcount = function(){
        return Object.keys(this.member).length;
    }
 
    var family = {address, member, addFamily, getHeadcount};
 
    family.addFamily(30'chloe''aunt');
    family.addFamily(3'lyn''niece');
    family.addFamily(10'dangdangi''dog');
 
    console.log(family.getHeadcount());    
 
</script>
<body>
 
</body>
</html>
cs

기존 family 객체의 속성을 변수로 객체 속성을 변수로 작성한다. 각속성의 키 이름을 변수명으로 정의하고, 값을 해당 변수에 할당한다. 

따라서 변수 address, members, addFamily, getheadcount에 해당하는 속성값이 할당된다. 

 

family 객체 리터럴을 선언

정의한 변수들을 중괄호 안에 넣는다.  단축 속성명은 문자열, 객체, 함수 등 자료형에 상관없이 적용가능하다. 


ES6의 향상된 객체 문법 알아보기 - 속성 계산명 

 

- 속성 계산명(Computed property Name)은 속성 이름을 정의하는 다른 방법이다. 대괄호 []안에 식을 넣거나 변수를 대입하여 동적으로 객체 속성들을 생성할 수 있다. 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title></title>
</head>
<script type="text/javascript">
    
    var obj = {};
 
    for(var i=0; i < 4; i ++){
        obj['key'+ i] = i;
    }
 
    console.log(obj);
 
    var profile = 'chloe:30';
 
    var person = {
        [profile] : true,
        [profile.split(':')[0]] : profile.split(':')[1]
    };
 
    console.log(person);
 
</script>
<body>
 
</body>
</html>
cs


ES6의 향상된 객체 문법 알아보기 - 비구조화 할당

 

- 비구조화 할당(Destructuring Assignment)이란, 배열이나 객체의 값을 새로운 변수에 쉽게 할당한다.

  ES6 이전에는 변수 하나에 값 하나를 일일히 할당해야 햇으나 ES6부터는 비구조화 할당을 통해 손쉽게 값을 할당할 수

  있게 되었다.

 

- 객체 비구조화 할당 활용 => 중괄호 {} 안에 속성 이름을 넣어 객체의 여러 속성을 한꺼번에 가져올 수 있다. 

 

-- > 다시 해봐야 겠다.

728x90
반응형

'IT 개발 > JavaScript' 카테고리의 다른 글

스코프 이해하기  (0) 2021.09.12
함수 호이스팅 이해하기  (0) 2021.09.12
반복문 배우기 - while  (0) 2021.04.18
반복문 - for in  (0) 2021.04.18
[Node.js 다운로드]  (0) 2021.04.18