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