유데미 강의 JavaScript 완벽 가이드 : 초급 + 고급 마스터 과정을 들으면서 자바스크립트를 다시 한 번 익히는 중이다. 이 포스팅에선 강의를 듣고 미처 몰랐던 부분, 심화 이해가 필요한 부분에 대해 주제별로 간단하게 기록할 생각이다.
1) 많은 조건을 처리해야 하는 경우: switch문은 많은 조건을 처리할 때 코드가 더 깔끔해지고 가독성이 향상된다.
2) 값의 범위가 아닌 특정 값에 따라 처리해야 하는 경우
3) 값에 따라 동일한 작업을 수행하는 경우: switch문에는 fall-through라는 기능이 있어, 여러 케이스를 연결하여 동일한 작업을 수행할 수 있다.
switch (x) {
case 'value1':
case 'value2':
case 'value3':
// perform some action
break;
default:
// default action
}
function getMaxLifeValues (){
const enteredValue = prompt('Maximum Life for you and the monster', '100');
const parsedValue = parseInt(enteredValue);
if (isNaN(parsedValue) || parsedValue <= 0) {
// 사용자 정의 오류 발생시키기 -> 스크립트 중단
// 관례상 대부분의 오류는 메세지가 담긴 객체의 형태
throw {message : 'Invalid user input, not a number'}
}
return parsedValue;
}
let chosenMaxLife ;
try {
chosenMaxLife = getMaxLifeValues();
} catch (error){
// 현재 코드에서 error는 자체 생성한 에러 메시지 객체
// 네트워크 요청 같은 시스템 오류인 경우 자바스크립트가 생성한 에러 객체
console.log(error);
// 폴백 로직 : 코드가 예상대로 실행되지 않을 때, 즉 예외가 발생할 때 적절한 대응을 할 수 있도록 하는 대체 코드
chosenMaxLife = 100;
}
따라서, 자바스크립트는 인터프리터가 코드를 분석하고 바이트 코드로 변환한 후, JIT 컴파일러가 바이트 코드를 기계 코드로 컴파일하여 최적화된 코드를 실행하는 과정을 거친다.
힙(Heap): 장기 메모리, 힙은 동적 메모리 할당을 위한 영역으로, 프로그램이 실행되는 동안 생성되는 객체와 데이터를 저장.
스택(Stack): 단기 메모리, 스택은 프로그램의 실행 흐름을 관리하는 구조. 함수 호출과 이에 따른 변수 할당 등이 이곳에서 이루어진다.
브라우저 API는 JavaScript가 브라우저 환경에서 특정 작업을 수행할 수 있도록 돕는 인터페이스 집합
가비지 컬렉션은 힙 메모리에서 사용되지 않는(참조되지 않는) 객체를 주기적으로 확인하고 제거한다.