[09장. 타입 변환과 단축 평가]
</br>
✏️ 자바스크립트의 알아서 잘하는 타입변환
근데 알아서 하는건 종종 오해를 낳는다. 그러니 자바스크립트가 어떤 때에 알아서 잘하는지 하는지 아는게 필요하다.
자바스크립트에는 두 가지의 타입 변환이 있다.
- 명시적 타입 변환 (타입 캐스팅)
- 암묵적 타입 변환 (타입 강제 변환)
명시적 타입변환은 toString() 메서드와 같이, 타입을 변환하는 것을 명시적으로 명령하는 것이다.
반대로 암묵적 타입 변환은, 명시적으로 명령하지 않지만 자바스크립트 엔진이 맥락을 평가하고 타입을 변환하는 것을 말한다.
예를 들어, ‘1’ + 1;이라는 문장은 ‘1’이 암묵적으로 숫자형으로 변환되어서 2라고 평가되어진다.
각각의 타입변환에는 장단점이 존재한다.
앞의 내용에서 언급했듯이 암묵적이고, 맥락에 의한 처리는 종종 오해를 발생시킨다. 다만, 가독성이 좋아질 수 있다.
암묵적 타입변환을 효과적으로 사용하기 위해서, 각각의 타입에서 암묵적 타입변환이 어떻게 발생하는지 아는 것이 도움된다.
</br>
✏️ 반복되는건 짧게 쓸 수 있도록 합의합시다.
타입이나 논리를 확인 후 그에 따라 명령을 실행하는 문에 매번 같은 조건문에서 값을 비교하는 것은 효율적이지 못할 것이다. 이를 위해서 자바스크립트는 미리 합의를 통해 몇가지 단축평가 문법을 제안하여 개발자로 하여금 코드를 작성하기 쉽게 돕는다.
[13장. 스코프]
</br>
✏️ 말이 쓰일 범위를 모르면 오해가 생깁니다.
pr이라는 단어를 듣는다면 뭐가 떠오를까?
- 마케팅에서는 PR을 Public Relations로 말하며, 대중과의 긍정적인 관계를 형성하기 위해 하는 활동을 말한다.
- 헬스에서는 PR을 Personal Record라고해서 개인 기록을 말한다.
- 개발에서는 PR을 Pull Request의 의미로 사용하며, 깃허브에서 내 작업물이 브랜치로의 병합될 수 있도록 요청하는 것을 말한다.
사람은 편의를 위해 축약어나 단어를 사용하고, 범위가 넓어지게 되면 동음이의어가 생기게 된다.
코드도 똑같다. 코드에서도 변수의 사용범위가 뒤죽박죽이고 변수를 읽는 순서가 다르다면 오해가 생길 수 있을 것이다.
</br>
✏️ 이를 위해 스코프(Scope)가 있어요.
이러한 오해를 막기위해서 스코프가 존재한다.
변수를 선언하면 해당 변수가 사용될 수 있는 스코프 내의 객체에 식별자로 등록되게 되며, 변수를 호출했을 때 호출한 스코프에 해당 변수가 없다면 하나씩 상위 스코프를 탐색하게 된다.
이러한 이유로 사용상의 편의를 위해 무턱대로 전역변수에 변수를 선언하는 것은 좋지 않다. 이는 14장. 전역 변수의 문제점에서 다뤄진다.