티스토리 뷰
변수에 할당된 값을 다른 자료형으로 변환하는 것을 의미하며 타입 캐스팅이라 합니다. 일반적으로 변수를 선언하고 데이터를 대입하면 그 시점에 변수의 타입이 결정됩니다, 그 후 프로그램에서 강제 형변환 하고자 할 때 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 |