ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [객체]프로퍼티-기초
    JavaScript/자바스크립트 기본 2023. 12. 6. 20:45

     

    1.프로퍼티

    객체는 프로퍼티의 집합이다.

    프로퍼티는 key와 value 쌍으로 이루어진 객체의 상태를 나타내는 값이다.

    const obj = {
      프로퍼티 키 : 프로퍼티 값
    }
    • 프로퍼티 키 : 빈 문자열을 포함하는 모든 문자열
    • 프로퍼티 값 : 모든 값

    프로퍼티 키는 일반적으로 문자열이 온다. 

    문자열이므로  " "로 묶어야 한다. 하지만 식별자 네이밍 규칙을 준수한 이름이라면 따옴표를 생략하고 작성 가능하다.

    하지만 네이밍 규칙을 준수하지 않은 이름이라면 따옴표를 사용해야한다.

    식별자 규칙을 어긴 " - " 가 들어간 프로퍼티 키는 오류가 발생하지만,

    프로퍼티 키를 따옴표를 붙여주면 에러가 발생하지 않는다. 따옴표를 생략하면 -를 연산자로 인식한다.

     

    프로퍼티의 값은 자바스크립트에서 사용 가능한 모든 값을 사용할 수 있다.

    즉 불리언,배열,숫자,문자 등 모든 값이 들어갈 수 있다. 

    프로퍼티의 값이 함수일 경우 일반 함수와 구분하기 위해 메서드 라고 표현한다.

    const user ={
      id:'kim',
      nickname:'닉네임',
      
      sayhi(){
        console.log('안녕하세요'+this.nickname+'입니다')
      }
    }

     

    2.프로퍼티의 생성,삭제,갱신

    2-1.프로퍼티의 생성

    존재하지 않는 프로퍼티에 값을 할당하면 동적으로 프로퍼티가 생성되고 값이 할당된다.

    let person = {}
    person.name="kim"
    
    console.log(person) // {name:'kim'}

     

    2-2.프로퍼티의 갱신

    이미 존재하는 프로퍼티에 값을 할당하면 값이 갱신된다.

    let person = {name:"jack"}
    person.name="kim"
    
    console.log(person) // {name:'kim'}

     

    2-3.프로퍼티의 삭제

    delete연산자로 객체의 프로퍼티를 삭제한다. 

    let person = {name:"jack"}
    delete person.name
    
    console.log(person) // {}

    3.프로퍼티 접근 방법

    프로퍼티에 접근하는 방법은 두 가지가 있다.

    • 마침표 표기법(dot notation)
      object.property-key 형태로 프로퍼티 값을 가져온다. 일반적인 접근
    • 대괄호 표기법(bracket notation)
      object["property-key"] 형태로 프로퍼티 값을 가져온다.
      *대괄호 안에 프로퍼티 키는 반드시 따옴표로 감싸줘야한다.

    3-1 .대괄호 표기법을 사용해야 하는 경우

    1️⃣네이밍 규칙을 따르지 않는 식별자에 접근할 

    프로퍼티 키의 이름이 유효한 이름이라면 마침표 표기법,대괄호 표기법 모두 사용할 수 있다.

    하지만 네이밍 규칙을 따르지 않는 식별자에 접근할 때 사용한다.

    const obj = {
      id:1,
      "e-mail":'test@naver.com',
      name:'kim',
    }
    
    obj.name //'kim'
    obj["name"] //'kim'
    
    obj.e-mail //error
    obj["e-mail"] //'test@naver.com',

     

    2️⃣키를 동적으로 받아올 때

    const obj = {}
    let key = 'this is key';
    obj[key] = true;
    
    console.log(obj) // this is key : true;

     

    3️⃣계산된 프로퍼티

    객체를 만들 때 객체 리터럴 안의 프로퍼티 키 대괄호로 묶여있는 경우, 계산된 프로퍼티(computed property)라고 한다.

    const id = prompt('어떤 아이디를 비활성화 하시나요?','kim');
    const user = {
      [id] : false,
    }
    console.log(user.kim) //kim : false 출력

    또는 표현식이 들어갈 수 있다.

    const word = 'Computed';
    
    const obj = {
      [word + 'Property'] : '어렵다'
    }
    
    console.log(obj);// ComputedProperty : 어렵다

     

    4.프로퍼티 축약표현

    ES5에서 ES6로 넘어가면서 간편한 축약표현을 사용 할 수 있게 되었다.

    리액트에서 자주 사용되는 개념이므로 잘 알아두면 도움이될 것 같다.

    4-1 .프로퍼티 축약 표현

    변수의 값과 프로퍼티 키 가 같으면 하나로 축약할 수 있다.

    //ES5
    var name = 'kim' age =1;
    var obj = {
        name:name;
        age:age;
    }
    console.log(obj)//{name:"kim",age:1}
    
    
    //ES6
    let name="kim",age=1;
    const obj{name,age};
    console.log(obj)//{name:"kim",age:1}

    4-2 .메서드 축약 표현

    function키워드를 사용하지 않고 메서드를 정의할 수있다.

    //ES5
    var person = {
      name:'kim',
      sayHi : function(){
        console.log('hi');
      }
    };
    
    //ES6
    const person = {
      name:'kim",
      sayHi(){
        console.log('hi');
      }
    };

     

    'JavaScript > 자바스크립트 기본' 카테고리의 다른 글

    [객체]프로퍼티-심화  (0) 2023.12.06
    value  (0) 2023.11.16
    변수var,let,const  (1) 2023.11.15
    실행 컨텍스트(Execution Context)  (0) 2023.05.21
    [객체 기초]3.구조 분해 할당(destructuring assignment)  (0) 2023.03.23
Designed by Tistory.