Deep JavaScript: Theory and techniques

회사분들과 함께 js 스터디를 하고자 읽게 된 책, 영문으로 된 책을 번역하였다 (2020.12.14)

2.1 What is type coercion?’ : 타입 강제 형변환 이란? (암묵적이다)

각 함수, 생성자들은 파라미터의 타입을 알고 있고, 파라미터에 옳바른 값이 넘어오지 않을 경우 다음과 같은 처리를 한다

throw new TypeError();
return NaN;
if (typeof x !== 'number') {
    x = Number(x);
  }

JavaScript는 초기에 excepction이 없었기에 대부분은 오류와 강제성을 사용했다.

Coercion : 강제성 assert.equal(3 * true, 3); → true : 1

Error values : 에러 assert.equal(1 / 0, Infinity); → Infinity : 무한대를 나타나는 숫자값 assert.equal(Number('xyz'), NaN); → NaN도 숫자를 쓰려고 했는데 오류가 나면 (Not a Number)

2.1.1 ‘Dealing with type coercion’ : 강제형변환 처리

강제형변환처리를 하는 일반적인 방법은 두 가지가 있다.