12일차 - 객체

dudu00·2022년 11월 5일
0

codestates

목록 보기
12/25
let obj = {"a": 123}
let newObj = {}
newObj["a"] = obj["a"]
>123
console.log(newObj)
> {a: 123}

obj1[key] = obj2[key];
ㅡ> value만 받아오는게 아닌 obj2 key를 받아와서 obj1 key에 추가해줘라라는 뜻

obj2 객체의 key가 반복적으로 돌아가는 동안 ‘obj1 객체안에 (obj2의)key가 없다면’
그 키를 받아와서 obj1[key]에 추가해줘라.

그리고 console.log 로 최종 obj1, obj2 확인해보면
console.log(obj1); // --> {a: 1, b: 2, c: 3}
console.log(obj2); // --> {b: 4, c: 3}

  for (let key in obj2) {
    if(!(key in obj1))
        obj1[key] = obj2[key];
        console.log(obj1, obj2);
  }







const obj1 = {
  a: 1,
  b: 2,
};

const obj2 = {
  b: 4,
  c: 3,
};
function extend(obj1, obj2) {
  // 첫번째 객체에 존재하는 경우, 기존 값을 그대로 둔다
  // 두번째 객체는 수정하지 않아야 한다.
  for (let key in obj2) {
    if(!(key in obj1)) {
      obj1[key] = obj2[key];
      console.log(obj1, obj2);  //// 이런식으로 콘솔창 중간에 잘 껴서 실행하자
      그래야 개발자 도구에서 확인이 쉽다
    }
  }
}

객체

객체는 키(key)와 값(value) 쌍으로 이루어져 있다.
중괄호를 이용해 객체 만듦.
키-값 상은 쉼표로 구분

객체 사용 방법

let user = {
firstName : ~~~,
....
}

(1) Dot notation

user.firstName; // .키 ㅡ> 변수 뒤에 .키 적어줘서 찾는다

(2) Bracket notation

user['firstName']; // 대괄호 따옴표 안에 키 적어준다, 안쪽의 내용을 문자열 형식으로 전달해야 한다.

(1), (2) ㅡ> user['firstName'] === user.firstName; // true

이런식으로 조회하는 것이 아니라 값을 추가할 수도 있다.

- delete 키워드를 통해 삭제가 가능
키-값 쌍을 지운다
delete user.firstName;

- in 연산자를 이용해 해당하는 키가 있는지 확인할 수 있다.
'firstName' in user ; // true ㅡ> 없으면 false

ㅡㅡㅡㅡㅡㅡㅡㅡ

자바스크립트에 모든건 객체다.
arr.push() ㅡ> push라는 내장함수가 저장되어있는걸 쓰는 것

{ } 로 감싸져 있는것들
프로퍼티 => 키 + 값
자바스크립트에서 사용가능한 모든 값은 프로퍼티가 될 수 있다.
문자열 , 숫자, boolean, 배열, 객체(객체 안에 객체 형태 가능), 함수(메서드)

프로퍼티 : 객체의 상태를 나타내는 값(data)
메서드 : 프로퍼티를 참조하고 조작할 수 있는 동작 > 객체 내부의 함수

배열은 데이터의 순서 정보 가지고 있다.
객체는 데이터에 이름(key)을 부여할 수 있다.

문자열 값을 변수에 할당시킬 경우
.[' '] 가 아닌 .[ ] 으로도 쓸 수 있다.

객체 내부에 값으로 들어 있는 배열과 객체, 함수도 똑같은 방법으로 접근 가능
ㅡ> 객체 내부에 배열이 있는데 이를 객체.push 등으로도 원래처럼 객체 내부 배열에 요소 추가해줄 수 있다.

객체의 키들을 배열로 바꾸는 메서드는?
Object.keys
값들을 배열로 바꾸려면
Object.values

객체를 반복하고 싶다
ㅡ> for in 반복문 쓴다

배열에 쓰는게
ㅡ> for of 문

키와 벨류에 따른 각각의 차이들

var obj = {
    a: 1, 
    b: 2, 
    c: 3
};

for (var prop in obj) {
    console.log(prop, obj[prop]);
}
// a 1
// b 2
// c 3

for (var prop in obj) {
    console.log(obj[prop]); 
}

// 1
// 2
// 3
profile
성장일지

0개의 댓글