[TIL/모던 자바스크립트 Deep Dive] 2023/03/24
7장. 연산자(Operator) 는 하나 이상의 을 대상으로 (산술, 할당, 비교, 논리, 타입, 지수 연산) 등을 수행해 을 만든다. 이때 연산의 대상이 바로 이다. 피연산자가 "값"이라는 을 한다면, 연산자는 "피연산자를 연산하여 새로운 값을 만든다"라는 을 한
7장. 연산자(Operator)
피연산자가 "값"이라는 ```명사의 역할```을 한다면, 연산자는 "피연산자를 연산하여 새로운 값을 만든다"라는 ```동사의 역할```을 한다고 볼 수 있다.
### 7-1. 산술 연산자(arithmetic operator)
피연산자(Operand)를 대상으로 ```수학적 계산```을 수행하여 새로운 숫자 값을 만들면 ```산술 연산자```라고 할 수 있다.
> **이항 산술 연산자**
operand가 2개이고, 수학적 계산을 하여 새로운 숫자 값을 만드는 연산자는 ```이항(binary) 산술 연산자```이다. 이항 산술 연산자는 어떠한 산술 연산을 해도 피연산자의 값이 바뀌는 경우는 없고 언제나 새로운 값을 만든다는 특징이 있다.

> **단항 산술 연산자**


선할당 후증가의 매커니즘은 다음과 같다.
1. result라는 변수에 5라는 x값을 먼저 할당한다.
2. 이후 x의 값을 6으로 증가시킨다.
3. 따라서 콘솔에는 5, 6 순서로 출력이 된다.
선증가 후할당의 매커니즘은 다음과 같다.
1. 6이라고 전달받은 x값을 일단 먼저 7로 증가시킨다.
2. 증가시킨 x값을 result 변수에 할당한다.
3. 따라서 콘솔에는 7, 7 순서로 출력이 된다.
감소는 증가와 매커니즘이 동일하기에 생략하겠다.

숫자 타입이 아닌 피연산자에 + 단항 연산자를 사용하면 피연산자를 숫자 타입으로 변환하여 반환한다. 이때 ``피연산자를 변경하는 것은 아니고`` 숫자 타입으로 변환한 값을 생성해서 반환한다. 따라서 부수 효과는 없다.


> **문자열 연결 연산자**

재미있는 점은 개발자의 의도와는 상관없이 자바스크립트 엔진에 의해 암묵적으로 타입이 자동 변환되기도 한다는 것이다.

이러한 현상을 ``암묵적 타입 변환(implicit coercion)` 또는 `타입 강제 변환(type coercion)``이라고 한다. 9장에서 더욱 자세하게 다룬다고 한다!
7-2. 할당 연산자(assignment operator)

할당문 자체보다는, 할당문이 ```표현식인 문인가, 표현식이 아닌 문인가```하는 쟁점이 더 중요해 보인다. 결론부터 말하자면, ```할당문은 표현식인 문```이다. 표현식인 문은 ```값으로 평가될 수 있는 문```을 의미하고, 값으로 활용될 수 있다는 것은 ```특정 변수에 할당할 수 있다는 뜻```을 내포한다.

추가적으로, 이러한 특징을 활용하여 여러 변수에 동일한 값을 ```연쇄 할당```할 수 있다고 한다.

### 7-3. 비교 연산자(comparison operator)
동등/일치 비교 연산자

다만 ```일치 비교 연산자(strict equality)```에서 ```NaN과 0```은 주의해야 한다.

다음은 ``0`이다. 자바스크립트에는 `양의 0`과 `음의 0`이 있는데 이들을 비교하면 `true``를 반환하기에 주의해야 한다.

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