자바스크립트 코드의 실행을 중지하거나 일시 정지하는 방법은 여러 가지가 있으며, 사용 목적에 따라 적합한 방법이 다르다.
📌 1. debugger 문 (Statement)
- 목적: 코드 디버깅 (Debugging)
- 동작: 브라우저의 개발자 도구(Developer Tools)가 열려 있는 상태에서 debugger; 코드를 만나면 해당 위치에서 코드 실행을 일시 정지한다. 개발자 도구를 통해 변수 값을 확인하거나 코드를 단계별로 실행(Step through)할 수 있다.
- 주의: 개발자 도구가 열려 있지 않으면 아무런 동작도 하지 않는다. 프로덕션(Production) 코드에는 포함하지 않는 것이 일반적이다.
📌 2. 동기적(Synchronous) 대화 상자: alert(), confirm(), prompt()
- 목적: 사용자에게 메시지를 보여주거나 입력을 받기 위함 (원래 목적)
- 동작: 이 함수들은 사용자 상호작용(확인 버튼 클릭 등)이 있을 때까지 코드 실행을 **차단(Block)**한다. 즉, 대화 상자가 떠 있는 동안 스크립트 실행이 멈춘다.
- 주의: 코드 실행을 멈추는 효과는 있지만, 사용자 경험(UX)을 해치고 브라우저 렌더링을 막기 때문에 디버깅이나 특정 시점의 실행 중지 목적으로는 권장되지 않는다.
📌 3. return 문 (Statement)
- 목적: 함수 실행 종료 및 값 반환
- 동작: 함수 내에서 return 문을 만나면 해당 함수의 실행을 즉시 종료하고, 호출한 곳으로 제어를 넘긴다. return 뒤에 값을 명시하면 해당 값을 반환한다.
- 사용: 특정 조건 만족 시 함수의 나머지 부분을 실행하지 않고 빠져나올 때 사용한다.
📌 4. break 문 (Statement)
- 목적: 반복문(for, while, do...while) 또는 switch 문 종료
- 동작: 현재 실행 중인 반복문이나 switch 문 블록을 즉시 종료하고, 해당 블록 다음의 코드로 실행 흐름을 옮긴다.
- 사용: 반복문 내에서 특정 조건을 만족했을 때 더 이상 반복을 수행할 필요가 없을 때 사용한다.
📌 5. throw 문 (Statement)
- 목적: 예외(Error) 발생시키기
- 동작: throw 문은 명시적으로 에러를 발생시켜 현재 실행 중인 코드 블록(함수 등)의 실행을 중단시킨다. 발생한 에러는 try...catch 문을 사용하여 잡지 않으면 프로그램 실행이 멈출 수 있다.
- 사용: 예상치 못한 상황이나 오류 조건을 감지했을 때 코드 실행을 중단하고 에러 처리를 위임하고자 할 때 사용한다.
📌 6. async/await (비동기 함수 내에서)
- 목적: 비동기(Asynchronous) 작업 처리
- 동작: async 함수 내에서 await 키워드는 Promise가 처리(resolve 또는 reject)될 때까지 해당 async 함수의 실행을 일시 정지한다. 이는 스레드를 차단하지 않고(Non-blocking) 다른 작업이 실행될 수 있도록 허용하면서 비동기 작업의 완료를 기다리는 방식이다.
- 사용: 비동기 코드를 동기 코드처럼 보이게 하여 가독성을 높이고 비동기 흐름을 제어할 때 사용한다. 엄밀히 말해 '멈춘다'기보다는 '기다린다'에 가깝다.
어떤 목적으로 코드 실행을 멈추고 싶은지에 따라 가장 적합한 방법을 선택하여 사용해야 한다. 일반적으로 디버깅 시에는 debugger를, 함수나 반복문 제어에는 return이나 break를 사용한다.
'자바 스크립트(java script)' 카테고리의 다른 글
웹사이트의 resize(크기 조정) 반응에 대해서 (0) | 2025.03.31 |
---|---|
✨ 다중 옵저버 (0) | 2025.03.31 |
document vs Document 사용 오류: (0) | 2025.03.31 |
✨ 자바스크립트 배열 메서드: filter() (1) | 2025.03.29 |
이벤트 리스너 예시 문제 풀이 (0) | 2025.03.21 |