[TIL/모던 자바스크립트 Deep Dive] 2023/03/30
8장. 제어문(control flow statement) 코드는 일반적으로 , 즉 위에서 아래 방향으로 순차적으로 실행된다. 이러한 일반적인 코드의 실행 흐름을 인위적으로 제어하기 위해 을 사용하게 된다. 에 따라 등으로 활용된다. 코드의 실행 순서에 인위적으로
8장. 제어문(control flow statement)
코드는 일반적으로 ``Top-Bottom`, 즉 위에서 아래 방향으로 순차적으로 실행된다. 이러한 일반적인 코드의 실행 흐름을 인위적으로 제어하기 위해 `제어문`을 사용하게 된다. `제어(control)의 방식`에 따라 `조건문, 반복문` 등으로 활용된다. 코드의 실행 순서에 인위적으로 변형을 가하는 것은 필연적으로 코드의 `가독성 저하`로 이어지게 된다. 향후에 학습할 forEach, map, filter, reduce 등의 `고차 함수를 사용한 프로그래밍 기법``에서는 제어문의 사용을 억제하여 복잡성을 해결하려고 노력한다고 한다.
8-1. 블록문(block statement/compound statement)

문의 끝에는 세미콜론(;)을 붙이는 것이 일반적이지만, 블록문은 언제나 문의 종료를 의미하는 ```자체 종결성```을 갖기 때문에 블록문의 끝에는 세미콜론을 붙이지 않는다.
### 8-2. 조건문(conditional statement)
if...else 문

조건식을 평가했을 때, 그 결과가 ``true`이면 `if 문의 코드 블록이 실행`되고, `false`이면 `else 문의 코드 블록이 실행`된다. 조건식은 불리언 값으로 평가되어야 하는데, 만일 if 문의 조건식이 `불리언 값이 아닌 값`으로 평가되면 자바스크립트 엔진에 의해 `암묵적으로 불리언 값으로 강제 변환``된다고 한다. 암묵적 타입 변환에 대해서는 차후에 깊게 배우도록 하겠다.


코드 블록 내의 문(=최소 실행 단위)이 하나뿐이라면 중괄호의 생략이 가능하다. 다음은 중괄호가 생략된 모습이다.

대부분의 if...else 문은 삼항 조건 연산자로 바꿔 쓸 수 있다.

'x%2'의 결과는 불리언 값이 아닌 0이다. 암묵적 타입 변환에 의해 0은 false로 변환되고, 따라서 짝수가 반환된다. 경우의 수가 세 가지라면 다음 코드처럼 쓸 수 있다.

위의 코드를 해석하는 방식은 다음과 같다. 우선 num은 2이기 때문에 true로 변환되고, 괄호('()')와 '영' 중에 괄호('()') 부분을 고려하게 된다. 그 다음 'num>0'이라는 조건식에서도 true이기 때문에 '양수'와 '음수' 중 최종적으로 '양수'를 반환하게 된다.
> **switch 문**

November를 의도하고 작성한 코드인데 'Invalid month'가 출력되었다. 조건에 맞을 때 break를 걸어주지 않으면 switch 문이 끝날 때까지 이후의 모든 case 문과 default 문을 실행하게 된다. 이러한 현상을 ``fall through``라고 한다.

break 문은 코드 블록에서 탈출하는 역할을 한다. break 문이 없다면 case 문의 표현식과 일치하지 않더라도 실행 흐름이 다음 case 문으로 연이어 이동한다.
default 문은 switch 문의 가장 마지막에 위치한다. default 문 실행의 종료는 곧 switch 문 실행의 종료를 의미하기에 별도로 break 문을 작성할 필요가 없다. 그래서 일반적으로 default 문에는 break 문을 생략한다.

More to read
프론트엔드와 백엔드 사이
HTTP 상태 코드는 프론트엔드에서 백엔드로 보냈던 요청의 수행 결과를 의미하는 일종의 약속이며, API를 구성하는 핵심 요소 중 하나입니다. 상태 코드와 관련하여, 백엔드는 잘 모르는 프론트엔드의 슬픈 사정이 있습니다.아래는 요청이 실패했음에도, 백엔드에서 상태 코드
JWT토큰 관리 방식 톺아보기
0. 들어가며 🎯 서비스에 접근하려는 사용자가 누구인지 확인하는 과정을 사용자 인증이라고 합니다. 인증된 사용자에게 주어진 권한을 확인하는 작업은 인가라고 부릅니다. 이번 글에서는 인가는 다루지 않습니다. 사용자 인증에는 많은 방식이 있지만, 오늘은 세션 인증 방
A2AA2A / MCP 멀티 에이전트 오케스트레이션
0. 들어가며 ✍️ Google for Developers에, 레스토랑 공급망 시나리오로 엮은 6대 프로토콜(MCP, A2A, UCP, AP2, A2UI, AG-UI)에 대한 가이드가 게시된 이후, MCP와 A2A부터 구현해 보는 것이 좋을 것 같다는 생각이 들었습니