- 원시값과 객체의 메모리 관리
| 원시값 | 객체 |
| - stack에 저장 - 값 자체가 복사(deep copy) |
- heap에 실제 객체 데이터가 저장 - stack에는 참조(주소)만 저장 - 복사해도 주소를 공유하기 때문에 한쪽 변경하면 다른 쪽도 영향을 받음 |
- a++ 나중에 증가 | ++a 먼저 증가
- 중첩 삼항 연산자
const result = cond1 ? '값1' : cond2 ? '값2' : cond3 ? '값3' : '기본값';
const result = cond1
? '값1'
: cond2
? '값2'
: cond3
? '값3'
: '기본값'; // 위와 같음
- switch의 break의 필요 여부
// 1.기본 switch 구조
switch (value) {
case 1:
console.log(1);
break;
case 2:
console.log(2);
break;
default:
console.log('other');
}
// 2.break가 필요한 경우
case 1:
doSomething();
break; // 다른 case로 넘어가지 않게 하려면 필요
// 3.break가 필요없는 경우
switch (fruit) {
case 'apple':
case 'pear':
console.log('과일입니다.');
break;
}
- for문 사용해야 하는 상황
// 반복 횟수가 명확하게 정해져 있을때
for (let i = 0; i < 100; i++) { ... }
// break / continue / index 조작이 꼭 필요할 때
for (let i = 0; i < arr.length; i++) {
if (arr[i] === target) break; // 가능
}
// 성능이 매우 중요한 로직 (알고리즘 문제 등)
for (let i = 0; i < bigArray.length; i++) { ... }
// 복잡한 인텍스 계산이 필요할 때
for (let i = 0; i < arr.length; i += 2) { ... }
// 비동기 반복을 순차적으로 처리해야 할 때
for (const x of datas) {
await fetchSomething(x); // 순차적으로 동작
}
- for문 사용하지 않는게 좋은 상황
// 배열을 “변환”할 때 (map)
const doubled = arr.map(v => v * 2);
// 배열을 “필터링”할 때 (filter)
const adults = users.filter(u => u.age >= 20);
// 배열을 “하나의 값으로 축약”할 때 (reduce)
const sum = arr.reduce((a, c) => a + c, 0);
// 단순하게 배열을 순회하면서 출력만 할 때 (forEach)
arr.forEach(item => console.log(item));
// 가독성이 더 중요하고 복잡한 인덱스 조작이 필요 없을 때
for (const user of users) {
console.log(user.name);
}
// 객체의 key/value를 순회할 때
for (const key in obj) { ... }
콜백함수란 다른함수에 인자로 전달되어, 그 함수 내부에서 호출되는 함수
function greet(name) { // greet가 콜백함수
console.log('Hello ' + name);
}
function executeCallback(callback) { // executeCallback가 콜백을 전달받아 실행하는 함수
callback('Alice'); // callback을 실행하는 곳
}
executeCallback(greet);'자바스크립트' 카테고리의 다른 글
| 자바스크립트 복습3 (0) | 2025.12.10 |
|---|---|
| 자바스크립트 복습2 (0) | 2025.12.09 |
| [JS] 함수 참조, 함수 호출 (0) | 2024.10.29 |
| [JS]자바스크립트 동작 원리(실행 컨텍스트, 스코프, 이벤트루프) (2) | 2024.10.25 |
| [DeepDive]17~19장 생성자 함수에 의한 객체 생성/함수와 일급 객체/프로토타입 (0) | 2024.10.25 |