brunch

You can make anything
by writing

C.S.Lewis

by 별똥별 shooting star Aug 25. 2023

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

출퇴근길에 공부하는 자바스크립트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가 되는 값이다. 


truthy가 될 경우

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

모든 숫자(0은 제외)

모든 객체

등등


falsy가 될 경우

0

NaN

null

undefined

빈문자열(예: "")

등등

매거진의 이전글 자바스크립트, break와 continue가 헷갈린다면
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari