티스토리 뷰

JavaScript/기본

006. JavaScript : 형변환

따강아지 2022. 3. 17. 01:17

변수에 할당된 값을 다른 자료형으로 변환하는 것을 의미하며 타입 캐스팅이라 합니다. 일반적으로 변수를 선언하고 데이터를 대입하면 그 시점에 변수의 타입이 결정됩니다, 그 후 프로그램에서 강제 형변환 하고자 할 때  String, Number, Boolean 함수를 사용합니다.

let sStr = "2"; 
console.log(typeof sStr, sStr); // string 2

// 문자열을 숫자형으로 형변환 합니다.
sStr = Number(sStr);
console.log(typeof sStr, sStr); // number 2

// 숫자형을 문자형으로 형변환 합니다.
sStr = String(sStr);
console.log(typeof sStr, sStr); // string 2

// boolean형으로 형변환 합니다.
let isBoolean = "0"; // 문자는 값이 있으면 Boolean으로 변환 시 true 
console.log(typeof isBoolean, isBoolean); // string 0

isBoolean = Boolean(isBoolean);
console.log(typeof isBoolean, isBoolean); // boolean true

isBoolean = ""; // 문자는 값이 없으면 Boolean으로 변환 시 false 
isBoolean = Boolean(isBoolean);
console.log(typeof isBoolean, isBoolean); // boolean false

isBoolean = 0;
console.log(typeof isBoolean, isBoolean); // number 0
isBoolean = Boolean(isBoolean);
console.log(typeof isBoolean, isBoolean); // boolean false

isBoolean = 1;
console.log(typeof isBoolean, isBoolean); // number 1
isBoolean = Boolean(isBoolean);
console.log(typeof isBoolean, isBoolean); // boolean true

1. 자동 형변환 

조건문의 조건식에서 자동 형변환이 발생 합니다, 다음음 모두 참인 입니다.

  • new Number(10) == 10;    // Number.toString()이 호출되고 다시 Number로 변환
  • 10 == '10’;                     // 스트링은 Number로 자동 형 변환
  • 10 == '+10 ‘;                  // 이상한 스트링으로 Number로 자동 형 변환 
  • 10 == '010’;                   // 엉뚱한 스트링으로 Number로 자동 형 변환
  • isNaN(null) == false;        // null은 NaN이 아니어서 0으로 자동 형 변환

다음은 모두 거짓 입니다. 즉 자동으로 형변환이 되지 않습니다.

  • 10 == 010;
  • 10 == '-10

2. 기본 타입 생성자

Number나 String 같은 기본 타입들의 생성자는 new 키워드가 있을 때와 없을 때 다르게 동작한다. new 키워드와 함께 Number 같은 기본 타입의 생성자를 호출하면 객체를 생성하지만 new 없이 호출하면 형 변환만 합니다.

2-1. Number 변환

  • new Number(10) === 10;         // False
    - new Number은 Object이고 10은 Number 입니다.
  • Number(10) === 10;               // True
    - Number(10)은 Number 이고 10은 Number  
  • new Number(10) + 0 === 10;   // True
    - new Number(10)은 Object이지만 0을 더하기 연산을 할 때 Number으로 자동 형변환 

2-2. 스트링으로 변환

  • '' + 10 === '10';    // true :
    - 숫자를 빈 스트링과 더하면 String으로 자동 형 변환 

2-3.  숫자로 변환  

  • +'10' === 10;       // true
    - + 연산자만 앞에 붙여주면 스트링을 쉽게 숫자로 자동 형 변환 

2-4. Boolean으로 변환

'!' 연산자를 두 번 사용하면 쉽게 Boolean으로 자동 형 변환 됩니다.

  • !!'foo';   // true
  • !!'';       // false
  • !!'0';     // true
  • !!'1';     // true
  • !!'-1'    // true
  • !!{};      // true
  • !!true;  // true

 

연관 : 자료형

 

004. JavaScript : 자료형

C, Java와 같은 언어는 변수의 데이터 형식은 정적 타입입니다. 즉 변수를 선언할 때 어떤 데이터 형식을 사용하는지 선언을 해야 하지만 JavaScript, Python은 변수에 데이터를 대입할 때 동적으로 할

hyomee.tistory.com

 

'JavaScript > 기본' 카테고리의 다른 글

005. JavaScript : 배열  (0) 2022.03.16
004. JavaScript : 자료형  (0) 2022.03.16
003. JavaScript : let, const  (0) 2022.03.06
002. JavaScript : 변수 var  (0) 2022.03.01
001. Javascript 란  (0) 2022.03.01