7장 연산자
- typeof 'Hi'(결과: string) 이것도 '타입 연산자'라고 한다.
- 다음은 문자열 연결 연산자의 결과들을 보여준다.
- 1 + ture -> 2
- 1 + false -> 1
- 1 + null -> 1
- 1 + undefined -> NaN
- +undefined -> NaN
즉, true는 1, false와 null은 0, undefined는 숫자로 타입변환이 되지 않는걸 알 수 있다.
- 동등/일치 비교 연산자 중 예외인것이 있는데 주의! (NaN === NaN 은 false로 나온다.)
자신과 일치하지 않는 유일한 값이다. 따라서 숫자가 NaN인지 조사하려면 빌트인 함수 isNaN을 사용한다.
- ES6에서 도입된 Object.is(a, b)를 사용하면 예측 가능한 정확한 예측 비교 결과를 반환한다. 예를보면 쉽게 알수 있다.
ex) 0 === -0 (true) Object.is(0, -0) (false) 그외에는 일치 비교연산자(===)와 동일.
8장 제어문
제어문은 조건에 따라 코드 블록을 실행하거나 반복실행 할 때 사용한다.
1. 블록문은 0개 이상의 문을 중괄호로 묶은것으로 코드 블록 또는 블록이라고 부르기도 한다.
자바스크립트는 블록문을 하나의 실행단위로 취급한다.
2. 문의 끝에는 일반적으로 세미콜론을 붙이는 것이 맞지만 블록문은 언제나 문의 종료를 의미하는 자체 종결성을 갖기 때문에 블록문의 끝에는 세미콜론을 붙이지 않는다.
3. 레이블 문, 반복문(for, for...in, for...of, while, do...while)또는 switch문의 코드 블록에서 break와 continue를 쓸수 있다. (break는 반복문 탈출, continue는 실행 중단 후 반복문의 증감식으로 이동)