ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 객체 Object
    javascript 2023. 3. 28. 19:57
    반응형

    * 객체 Object

     

    - 객체는 {}로 작성

    - 키 : 값 으로 구성된 프로퍼티

    - 각각의 프로퍼티는 ,로 구분함

    const superman = {
                name : 'clack',
                age : 30,
            }

    * 객체 접근 추가

     

    - . 점을 사용

    - [ ] 괄호 사용

    const superman = {
                name : 'clack',
                age : 30,
            }
            
    /*접근*/
    superman.name//clark
    superman['age']//30
    console.log(superman)//Object{name: 'clack', age: 30}
    
    //---------------------------------------------------------------------------------------------
    /*추가*/
    superman.gender='male';
    superman.[hairColor]='black';
    console.log(superman)//Object{name: 'clack', age: 30, , gender: 'male', hairColor: 'black'}

    * 객체 삭제 : 삭제하고 싶은 프로퍼티 앞에 delete 붙이기

    const superman = {
                name : 'clack',
                age : 30,
            }
            
    delete superman.age;
    console.log(superman)//Object{name: 'clack'}

    * object 단축 프로퍼티

    //만약 이런 값과
    const name='clark';
    const age = 33;
    //이런 객체가 있다면
    const superman = {
         name : name,
         age : age,
         gender : 'male',
    }
    //이렇게 단축 가능
    const superman = {
         name,
         age,
         gender : 'male',
    }

    /*예시 : 이름과 나이를 받아서 객체를 반환하는 함수*/
    function makeObject(name, age){
         return{
             name : name,
             age : age,
             hobby : 'football',
         }
    }
    //축약 가능
    function makeObject(name, age){
         return{
             name,
             age,
             hobby : 'football',
         }
    }
    
    const Mike = makeObject('Mike', 30);
    console.log(Mike);//Object{name: 'Mike', age: 30, hobby: 'football'}

    * 프로퍼티 존재 여부 확인 in

    const superman = {
         name : name,
         age : age,
    }
    
    superman.birthDay;//undefined
    
    //이때 in 연산자를 사용하면 프로퍼티가 있는지 확인 가능 : 어떤 값이 나올지 확신할 수 없을 때 in 사용
    'birthDay' in superman;//false
    'age' in superman;//true
    
    //-------------------------------------------------------------------------------------------
    const Mike = {
         name : 'Mike',
         age : 30,
    }
    
    const Jane = {
         name : 'Jane',
    }
    
    function makeObject(name, age){
         return{
             name,
             age,
             hobby : 'football',
         }
    }
    
    console.log('age' in mike);//true
    console.log('birthDay' in mike);//false
    
    function isAdult(user){
         if(user.age < 20){
             return false;
         }else{
             return true;
         }
     }
     
    console.log(isAdult(Mike));//true
    console.log(isAdult(Jane));//true : age가 없어 if(undefined<20)이 되고 이것은 조건에 충족이 안되서 false가 되고 else 구문 true를 반환
    
    //Jane은 false가 나와야하므로 다시 식을 고치면
    function isAdult(user){
         if(!('age' in user) ||//user에 age가 없거나
          user.age < 20){//20살 미만이면
             return false;
         }else{
             return true;
         }
     }
     
    console.log(isAdult(Mike));//true
    console.log(isAdult(Jane));//false

     


    * for ...in 반복문 : 객체를 사용하며 반복문 사용 가능

    for(let key in superman){
         console.log(key)
         console.log(superman[key])
    }
    
    //-------------------------------------------------------------------------------------------
     const mike = {
                 name : 'Mike',
                 age : 30,
            }
            
    for(key in Mike){//여기서 key는 key, x, data, a, b, c 어느것이 와도 상관없음 , key는 mike가 가진 프로퍼티를 의미
                console.log(key);//"name", "age" : 즉 마이크가 가지고 있는 key 값들이 나옴
                console.log(Mike[key])//"Mike", 30 : 즉 Mike['name'], Mike['age']를 의미하고 결과는 "Mike", 30 값이 나옴
            }
    반응형

    'javascript' 카테고리의 다른 글

    배열 array  (0) 2023.03.28
    객체 Object의 method와 this  (0) 2023.03.28
    함수 선언문, 함수 표현식, 화살표 함수  (0) 2023.03.28
    전역변수, 지역변수  (0) 2023.03.28
    함수 function  (0) 2023.03.28

    댓글

Designed by Tistory.