자바스크립트, 암묵적 타입변환으로 인한 실수 줄이기

출퇴근길에 공부하는 자바스크립트1

by 별똥별 shooting star


자바스크립트는 동적 타입 언어로, 변수의 타입을 미리 선언하지 않아도 된다. 이 특징은 코드 작성을 유연학 해주지만, 동시에 암묵적 변환으로 인한 오류 가능성도 증가하게 된다. 그렇기 때문에 개발자는 코드 오류를 줄이기 위해서는 어떻게 암묵적으로 타입을 변환하는지 알 필요가 있다.



암묵적 문자열 타입으로 변환

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가 되는 값이다.


truthy가 될 경우

비어있지 않은 문자열(예:'hello')

모든 숫자(0은 제외)

모든 객체

등등


falsy가 될 경우

0

NaN

null

undefined

빈문자열(예: "")

등등

keyword
매거진의 이전글자바스크립트, break와 continue가 헷갈린다면