자바스크립트 원시형, 참조형에 대한 개념
name: 'James',
age: 25;
};
obj.name = 'Sam'
console.log(obj.name); // 'Sam'
const 키워드로 할당했으면 데이터 못 바꾸는 거 아닌가요?
=> 원시값, 참조값 데이터의 차이점!
obj이름을 가진 메모리에는 레퍼런스가 들어있고 해당 메모리의 내용은 변경이 불가능하지만
레퍼런스의 데이터는 heap이라는 특별한 공간에 저장되어 있으므로 결국 const obj의 데이터는 변경 가능
데이터가 없고 비어있으면 false
falsy: A falsy value is a value that is considered false when encountered in a Boolean context.
false 0, -0, undefined, null, "", '', `` NaN
||, && 차이점에 대해 설명가능하고 잘 활용해서 코드를 줄일 수 있음
let obj = {
name: "woo",
};
// if (obj) {
// console.log(obj.name);
// }
obj && console.log(obj.name);
class Counter {
constructor(runEveryFiveTimes) {
this.counter = 0;
this.callback = runEveryFiveTimes;
}
increase() {
this.counter++;
console.log(this.counter);
if (this.counter % 5 === 0) {
this.callback && this.callback(this.counter);
}
}
}
function printNum(num) {
console.log(`Wow ${num}`);
}
function alertNum(num) {
alert(`alert! ${num}`);
}
const printCounter = new Counter(printNum);
const alertCounter = new Counter(alertNum);
printCounter.increase();
printCounter.increase();
printCounter.increase();
printCounter.increase();
printCounter.increase();
alertCounter.increase();
alertCounter.increase();
alertCounter.increase();
alertCounter.increase();
alertCounter.increase();