JS/JavaScript

#3 자바스크립트 타입 변환

인생아 2024. 8. 27. 00:41
반응형

자바스크립트는 동적 타입 언어이기 때문에, 변수의 데이터 타입이 실행 중에 변경될 수 있습니다. 이러한 변환을 타입 변환이라고 합니다. 자바스크립트는 암시적 형 변환과 명시적 형 변환 두 가지 방식을 지원합니다.

1. 암시적 형 변환 (Implicit Type Conversion)

자바스크립트 엔진이 개발자가 의도하지 않더라도 자동으로 데이터 타입을 변환하는 것을 말합니다. 주로 연산 시에 발생하며, 예상치 못한 결과를 초래할 수 있으므로 주의해야 합니다.

  • 문자열 연결: 숫자와 문자열을 더하면 숫자가 문자열로 변환되어 연결됩니다.
    let result = 10 + "20"; // "1020"
    
     
     
  • 비교 연산: 다른 타입의 값을 비교할 때, 자바스크립트는 값을 비슷한 타입으로 변환하여 비교합니다.
    console.log(10 == "10"); // true (숫자 10이 문자열 "10"으로 변환되어 비교)
    
     
     
  • 불리언 변환: 조건문이나 논리 연산에서 값을 불리언 값으로 변환합니다.
    /*
    다음과 같은 값들은 불리언으로 변환하면 true가 됩니다.
     - 모든 숫자 (0 제외)
     - 모든 문자열 (빈 문자열 "" 제외)
     - 모든 객체 (null과 undefined 제외)
    다음과 같은 값들은 불리언으로 변환하면 false가 됩니다.
     - false
     - 0
     - -0
     - null
     - undefined
     - NaN
     - 빈 문자열 ("")
    */
    if (1) { // true
        console.log("1은 true입니다.");
    }
     
     

2. 명시적 형 변환 (Explicit Type Conversion)

개발자가 의도적으로 데이터 타입을 변환하는 것을 말합니다.

  • Number() 함수: 다른 타입의 값을 숫자로 변환합니다.
    let str = "10";
    let num = Number(str); // num은 10
    
     
     
  • String() 함수: 다른 타입의 값을 문자열로 변환합니다.
    let num = 10;
    let str = String(num); // str은 "10"
    
     
     
  • Boolean() 함수: 다른 타입의 값을 불리언 값으로 변환합니다.
    let isTrue = Boolean(1); // true
    
     
     
  • parseInt() 함수: 문자열을 정수로 변환합니다.
  • parseFloat() 함수: 문자열을 부동소수점 숫자로 변환합니다.

 

주의해야 할 점

  • 암시적 형 변환은 예상치 못한 결과를 초래할 수 있습니다. 명시적으로 타입을 변환하여 코드의 가독성을 높이고 오류를 방지하는 것이 좋습니다.
  • 타입 변환 시 데이터 손실이 발생할 수 있습니다. 예를 들어, 실수를 정수로 변환할 때 소수점 이하 자리가 버려질 수 있습니다.
반응형