[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
AI&ML 기초
Reference: https://bettermesol.github.io/ml/2019/09/16/ai-ml-dl/AI: 기계가 사람처럼 생각하고 판단하게 만드는 가장 넓은 범주의 기술입니다.ML: 데이터를 학습하여 스스로 규칙을 찾아내는 AI의 한 분야로,
'AI Agent Economy'Novitas : AI Agent가 지갑을 가지는 세상
얼마 전, 미래에셋증권 리서치 리포트(올해는 이더리움이다: 에이전트 시대의 Near Automata)를 접하게 되었습니다. AI Agent를 인간과 함께할 경제 주체로 바라보는 시각에 적잖이 충격을 받았더랬죠.한 가지 짚고 넘어갈 부분이 있습니다. 우리가 흔히 'AI'
'ERC-8004'Novitas: AI 에이전트 경제 주체
Web 4.0을 한 문장으로 정의하면 Sovereign Transact입니다.AI가 인간의 허락 없이 지갑을 소유하고, 결제를 수행하며, 인프라를 통제하는 주권적 경제 주체가 되는 세계입니다. Web 3.0이 블록체인 기반의 탈중앙화를 실현했다면, Web 4.0은 그