
7장 (연산자)
- 산술 연산자
- 산술 연산이 불가능한 경우 NaN을 반환한다.
- 부수효과 = 피연산자의 값을 변경하는 것
- 증가 / 감소 (++ / —) 연산자는 피연산자의 값을 변경하는 부수효과가 있다.
- 전위 증가/감소 연산자
- 후위 증가/감소 연산자
- 연산자는 피연산자 중 하나 이상이 문자열인 경우 문자열 연결 연산자로 동작한다
- null + 1 = 1 ⇒ null은 0으로 변환
- undefined + 1 = NaN ⇒ undefined는 숫자 타입으로 변환 안됨
- 암묵적 타입 변환 ( = 타입 강제 변환)
- 연산 과정에서 자바스크립트 엔진이 타입을 변환 시킨 것
- 비교 연산자
- == (동등 비교)와 === (일치 비교)
- ==
- ===
- *** Tip
- 동등 비교 연산자는 예측하기 어려운 결과를 만들어 내기도 하므로 사용하지 않는 것이 좋다
- typeof 연산자
- typeof가 반환하는 것은 7가지 문자열이다
- string, number, boolean, undefined, symbol, object, function
- null을 반환하는 경우는 없다 ⇒ null = object
- 따라서 null 값을 확인할 떄는 일치 연산자( === )를 사용한다
- 선언하지 않은 식별자를 typeof 로 연산하면 undefined를 반환한다.
- 지수 연산자
- ex) 2 2 = 4, 3 2 = 9
- 음수일 경우 괄호로 묶어야 한다
- 연산자 우선순위
- 모든 우선순위를 기억하기보다 연산자 중 우선순위가 가장 높은 그룹 연산자를 사용하여 우선순위를 명시하는 것을 권장한다.
8장 (제어문)
- 블록문
- 0개 이상의 문을 중괄호로 묶은 것
- 코드 블록 or 블록이라고 부르기도 한다
- 자바스크립트는 블록문을 하나의 실행단위로 취급한다.
- 블록문은 자체 종결성을 갖기 때문에 세미콜론을 붙이지 않는다.
- if / switch
- for
- for문의 변수 선언문, 조건식, 증감식은 모두 옵션이므로 생략가능하다.
- 반복 횟수가 명확할 때 사용
- while
- 반복 횟수가 명확하지 않을 때, 조건식을 통하여 반복문의 끝을 정한다
- do ~ while
- continue
- 반복문의 코드 블록 실행을 현 지점에서 중단하고 반복문의 증감식으로 실행 흐름을 이동시킨다.
9장 (타입 변환과 단축평가)
- 타입 변환
- 개발자가 의도적으로 값의 타입을 변환하는 것을 명시적 타입 변환 or 타입 캐스팅이라고 한다.
- 개발자의 의도와는 상관없이 자바스크립트 엔진에 의해 타입이 자동으로 변경되는 것을 암묵적 타입변환 or 타입 강제 변환 이라고 한다.
- 명시적 타입 변환이나 암묵적 타입 변환이 일어난다고 해서 기존의 원시 값의 타입이 변경되지는 않는다.
- 암묵적 타입 변환
- boolean 타입
- 자바스크립트 엔진은 불리언 타입이 아닌 값을 Truthy 또는 Falsy값으로 구분한다.
- 단축 평가
- 논리 연산의 결과를 결정하는 피연산자를 타입 변환하지 않고 그대로 반환하는 것
- 표현식을 평가하는 도중에 평가 결과가 확정된 경우 나머지 평가 과정을 생략하는 것을 말한다
- ex)
‘cat’ || false ⇒ ‘cat’ 값이 Truthy 이므로 ‘cat’ 값을 반환
’cat’ && ‘dog’ ⇒ ‘dog’ 값을 판단할 때 결과가 결정되므로 ‘dog’값 반환
- 옵셔널 체이닝 연산자
- elem?.vale ⇒ elem && elem.value
- null 병합 연산자 ( ?? )
- 피연산자의 값이 null 또는 undefined 값인지 판단
- ex)
const temp = ‘’ || ‘dog’ ⇒ 이 경우 ‘’ 값을 Falsy 하다고 판단하여 ‘dog’ 가 할당된다.
const temp = ‘’ ?? ‘dog’ ⇒ 이 경우 ‘’ 값을 Truthy 하다고 판단하여 ‘’가 할당된다.