출퇴근길에 공부하는 자바스크립트1
자바스크립트는 동적 타입 언어로, 변수의 타입을 미리 선언하지 않아도 된다. 이 특징은 코드 작성을 유연학 해주지만, 동시에 암묵적 변환으로 인한 오류 가능성도 증가하게 된다. 그렇기 때문에 개발자는 코드 오류를 줄이기 위해서는 어떻게 암묵적으로 타입을 변환하는지 알 필요가 있다.
let value = 5 + "10" // '510';
let value = 5 + Number("10"); // 15
숫자와 문자열을 함께 더하면 다음과 같이 결과를 반환하게 된다. 그렇기 때문에 이를 방지하기 위해서는 두 번째 코드와 같이 명시적 타입 변환을 지정해줘야 한다.
let value = "5" - 3 // 2
산술 연산자를 사용하면 문자열이 숫자로 변환될 수 있다. 문자열이 숫자로 변환되지 않을 경우에는 NaN을 반환한다. 여기에서 문자열을 명시적으로 타입을 변환해 준다면 개발자의 예측이 더욱 용이할 수 있다.
if ("non-empty string") { // truthy이므로 이 블록이 실행됨
//...
}
if ("") { // falsy이므로 이 블록은 실행되지 않음
//...
}
자바스크립트에서 불리언 변환은 truthy와 falsy값으로 알려져 있다. truthy는 불리언으로 변환했을 때 ture가 되는 값이고, falsy는 false가 되는 값이다.
비어있지 않은 문자열(예:'hello')
모든 숫자(0은 제외)
모든 객체
등등
0
NaN
null
undefined
빈문자열(예: "")
등등