객체
- 주소록에 김철수의 이름, 이메일, 주소를 담고싶다. 3개 변수
- 김유리도 만들어야하면 또 3개변수 만들어야 한다.
- 배열로 하면? let user = ['Steve','steve@naver',Seoul'] 좀 편하긴 한데
- user[1] 이렇게 접근해야해서 가독성이 구리다
- 객체는 하나의 변수에 여러가지 정보를 담을 수 있다.
- 객체는 키와 값의 쌍으로 이루어져 있다.
let user = {
firstName : 'steve',
lastName: 'Lee',
email : 'steve@naver'
city : 'Seoul'
};
- 접근법은 . 을 통해 한다. user.firstName, user.city처럼
- []로도 가능 user['firstName']; 로도 같은 결과 나온다.
- tweet[content]처럼 '' "" 안하면 오류뜬다. 키값으로 문자열을 넣도록 하자, 변수가 문자열이면 이래도 된다. 동적때 사용함
- []은 안에 들어가는게 문자열이어야함. 변수쓸때 아니면 걍 . 쓰자
- tweet[content] !== tweet['content']
- .이랑 []랑 뭐가 다르냐? []은 키값이 동적으로 변할때 사용해야 한다.
- .은 정해진 키이름이 있을때만 쓴다.
- tweet['category'] = '잡담', tweet.isPublic = 'true'처럼 새 값을 추가할 수 있다.
- delete tweet.createdAt 으로 삭제가능
- 'content' in tweet; 로 키가 있는지 boolean로 확인할 수 있다.
- 크롬 개발자도구 > 함수 붙여넣고 debugger; fibonacci(5) 이렇게 해줘야됨
- f9누르면 함수가 차례대로 동작함
- 메서드 : 객체안에 함수가 있음
- length : function(){console.log('${this.name}')}
- this 자기객체에있는 키 호출
- 배열형태로 키, 밸류 변환함수 Object.keys(obj) , Object.values(obj)
- let userInfo = Object.assign(user, info) 두객체 합치기
- let userInfo = Object.assign({}, myCatDoi); 로 slice처럼 복사가능
- Object.is(myCat1, myCat2) 객체가 같은지 불리안값 알려줌
- 되도록 for문 안 내용을 합칠수있으면 하나로 합친다