선언 방식 선택
재할당이 없으면 const, 값이 바뀌어야 하면 let을 쓰고 var의 함수 스코프 함정을 피한다.
const는 값 불변이 아니라 바인딩 재할당 금지다var, let, const와 숫자, 문자열, 불리언을 나열하는 것만으로는 JavaScript 버그를 막기 어렵다. 선언 스코프, 재할당 가능성, 원시값과 객체 참조, 암묵적 변환, ==와 === 비교 차이가 실제 코드 흐름을 좌우한다.
재할당이 없으면 const, 값이 바뀌어야 하면 let을 쓰고 var의 함수 스코프 함정을 피한다.
const는 값 불변이 아니라 바인딩 재할당 금지다원시값과 객체 참조가 대입과 비교에서 어떻게 다른지 확인한다.
객체는 같은 모양이어도 같은 참조가 아니면 다르다폼 입력, URL query, JSON, localStorage에서 들어온 문자열을 필요한 타입으로 명시 변환한다.
암묵적 변환은 오답을 숨긴다동등 비교는 기본적으로 ===를 쓰고 null/undefined 허용 여부를 별도로 처리한다.
==는 변환 규칙을 동반한다0, 빈 문자열, false, null, undefined를 같은 값처럼 다루지 않도록 조건을 쪼갠다.
truthy/falsy는 편하지만 위험하다