❓ ECMA Script
- ECMA International이 ECMA-262 기술 규격에 따라 정의하고 있는 표준화 된 스크립트 프로그래밍 언어
- 매 해 6월에 버전이 갱신됨
_(언더바)
와 $(달러)
만 사용 가능let
const
목적에 따라 특별한 성질이나 정해진 범주를 갖고 있는 데이터 종류
자바스크립트에서는 6가지 원시타입, 1가지 객체타입 으로 구성되어 있음
원시타입
객체타입
object()
/ object({})
중괄호를 통해 생성 가능key: value
형태로 표현하며, 접근 방법은 object.key
obj.key = value
, 삭제 방법은 delete
명령어를 통해 삭제✏️ 자료형 확인 방법
typeof
- 인수의 자료형을 반환하는 연산자
- typeof x, typeof(x)로 작성
1. for문을 통한 객체 복사
let user = {
name: "john",
age: 23,
};
let admin = {};
// 얕은 복사
for (let key in user) {
admin[key] = user[key];
}
admin.name = "park";
console.log(admin.name); // john
console.log(user.name); // park
2. Object.assing() 함수 복사
let user = {
name: "john",
age: 23,
};
let admin_obj = Object.assign({}, user);
admin_obj.name = "park";
user.age = 30;
console.log(admin_obj.name); // john
console.log(user.name); // park
console.log(admin_obj.age); // 23
console.log(user.age); // 30
3. 전개 연산자 복사
let user = {
name: "john",
age: 23,
};
let admin_spread = { ...user };
admin_spread.name = "park";
user.age = 30;
console.log(admin_spread.name); // john
console.log(user.name); // park
console.log(admin_spread.age); // 23
console.log(user.age); // 30
1. 재귀 함수 복사
let user = {
name: "john",
age: 23,
sizes: {
weight: 72,
height: 180
},
};
function copyObj(obj) {
let result = {};
for (let key in obj) {
if (typeof obj[key] === "object") result[key] = copyObj(obj[key]);
else result[key] = obj[key];
}
return result;
}
let admin = copyObj(user);
admin.sizes.weight++;
console.log(admin.sizes.weight); // 73
console.log(user.sizes.weight); // 72
2. JSON객체 복사
stringify
는 객체를 문자열로 반환하는데, 이때 원본 객체와의 참조가 끊김let user = {
name: "john",
age: 23,
sizes: {
weight: 72,
height: 180
},
};
let admin_json = JSON.parse(JSON.stringify(user));
admin_json.sizes.weight++;
--admin_json.sizes.height;
console.log(admin_json.sizes.weight); // 73
console.log(admin_json.sizes.height); // 179
console.log(user.sizes.weight); // 72
console.log(user.sizes.height); // 180