자바스크립트는 동적 타입 언어로, 변수의 타입이 자동으로 변환될 수 있습니다. 이는 숫자와 논리 연산을 수행할 때 혼란을 초래할 수 있습니다. 때문에 종종 명시적 형 변환을 사용하여 정확하고 예측 가능한 결과를 얻어야 합니다.
숫자와 문자열 간의 형 변환
자바스크립트에서 숫자와 문자열 간에는 자동 형 변환이 발생합니다. 예를 들어, 숫자와 문자열을 더하면 자동으로 문자열로 변환됩니다.
let num = 10;
let str = "20";
let result = num + str;
console.log(result); // "1020"
위의 예시에서는 숫자 10과 문자열 “20”이 더해져서 “1020”이라는 문자열이 출력됩니다. 이는 자바스크립트 엔진이 숫자를 문자열로 변환한 결과입니다. 따라서 숫자와 문자열을 계산할 경우, 특히 숫자의 덧셈이 아닌 다른 연산을 수행할 때는 명시적으로 형 변환을 해주어야 합니다.
숫자와 논리 값 간의 형 변환
자바스크립트에서는 0
, NaN
, null
, undefined
, ""
(빈 문자열)을 제외한 모든 값은 논리적으로 true
로 간주됩니다. 반대로, 이 값들은 false
로 형 변환됩니다.
console.log(Boolean(10)); // true
console.log(Boolean("hello")); // true
console.log(Boolean(0)); // false
console.log(Boolean(null)); // false
위의 예시에서는 Boolean()
함수를 사용하여 숫자와 문자열을 논리 값으로 형 변환하였습니다. 숫자 10
과 문자열 "hello"
은 true
로 형 변환되었으며, 0
과 null
은 false
로 형 변환되었습니다.
논리 연산자인 &&
(논리 곱)와 ||
(논리 합)는 마지막으로 평가된 값을 반환하므로, 이를 이용하여 명시적인 형 변환을 수행할 수 있습니다.
let result = 10 && "20";
console.log(result); // "20"
result = 0 || "30";
console.log(result); // "30"
위의 예시에서는 &&
연산자를 사용하여 숫자 10
과 문자열 "20"
을 형 변환하여 "20"
이 출력되었습니다. 또한 ||
연산자를 사용하여 0
과 "30"
을 형 변환하여 "30"
이 출력되었습니다.
명시적 형 변환이 필요한 경우, 자바스크립트에서 제공하는 형 변환 함수인 Number()
, String()
, Boolean()
등을 사용할 수 있습니다.
결론
자바스크립트에서 숫자와 논리 연산을 수행할 때, 명시적 형 변환을 통해 예측 가능한 결과를 얻을 수 있습니다. 숫자와 문자열, 논리 값 사이의 형 변환은 자동으로 이루어지기 때문에 주의가 필요하며, 필요한 경우 명시적으로 형 변환 함수를 사용하여 원하는 결과를 얻을 수 있습니다.
#javascript #type-conversion