
Type
문자열+ 숫자형 => 문자열 (1+'1') -> '11'
문자열 - 숫자형 => 숫자형. (123-'1'). 122
문자열이 숫자가 아니면 =>NaN.
scope
let age = 27;
let name = "jin";
let height = 179;
function outerFn() {
let age = 24;
name = "jimin";
let height = 178;
function innerFn() {
age = 26;
let name = "suga";
return height;
}
innerFn();
console.log(age); //26
console.log(name); //'jimin'
return innerFn;
}
const innerFn = outerFn();
console.log(age); //27
console.log(name); //'jimin'
console.log(innerFn()); //178
});
Object
얕은복사 : 주소값 복사. 객체가 같은 주소를 공유해서 원본을 손상시킴
깊은복사: 실제값 복사. 원본유지
const a = { id: 1, ref: { refId: 3, name: 'jihoon' } };
const b = Object.assign({}, a);
b.id = 3;
delete b.ref['name'];
// a는 {id:1, ref: {refId: 3}}
// b는 {id:3, ref: {refId: 3}}
ref 객체 키name을 지우면 같은 주소를 가리키고 있기 때문에 원본에 영향을 미침
const user = {
name: '김코딩',
company: {
name: 'Code States',
department: 'Development',
role: {
name: 'Software Engineer'
}
},
age: 35
}
const changedDepartment = {
...user,
company: {
...user.company,
department: 'Marketing'
}
}
원본을 해치지 않는(user의 departmet: 'Development'지키기) 깊은복사를 위해 company 안에 ...user.company를 씀
const temp3 = {
name: '김코딩',
age: 35,
company: {
name: 'Code States',
department: 'Marketing',
role: {
name: 'Software Engineer',
},
}
}
expect(changedDepartment).to.eql(temp3)
'프론트엔드 > 코드스테이츠 회고' 카테고리의 다른 글
| 코드스테이츠 Secton1 마침 -KPT 회고 (0) | 2022.07.20 |
|---|---|
| 회고: Dom (0) | 2022.07.14 |
| 회고: 원시 자료형 vs 참조 자료형 (0) | 2022.07.11 |
| 회고: js mutable, immutable (0) | 2022.07.07 |
| 회고: CLI (0) | 2022.07.06 |