JavaScript 명시적 타입 변환
Sep 4, 2020
»
JavaScript
명시적 타입 변환
1. 숫자를 문자열로 변환
- 숫자 + 문자열
- 숫자와 문자열을 + 연산자로 연결하면 숫자의 타입이 문자열로 바뀜
ex1) 10 + "cookies"; // "10cookies" ex2) 100 + ""; // "100" : 숫자에 빈 문자열을 더해 숫자를 문자열로 바꿀 수 있음
- Number 객체의 메서드 활용
- toString: 숫자를 문자열로 변환
- toLocaleString: 숫자를 지역화된 문자열로 변환
- toFixed: 숫자의 소수점 아래 자릿수를 지정한 문자열로 변환
- toExponential: 숫자의 소수점 아래 자릿수를 지정한 문자열로 변환하되 지수와 함께 표시
- toPrecision: 숫자를 유효 숫자가 지정된 문자열로 변환, 유효 숫자가 정수부의 자릿수보다 작을 때는 지수로 표시
var a = 26; a.toString(); // 26 >> 인수를 지정하지 않으면 10진수 문자열로 변환 a.toString(2); // 11010 >> 2진수 문자열로 변환 var b = 1234.567; b.toString(); // 56 b.toFixed(0); // 1234 b.toFixed(2); // 1234.57 b.toFixed(4); // 1234.5670 b.toExponential(3); // 1.235e+3 b.toPrecision(3); // 1.23e+3
- String 함수 활용
- String 생성자 앞에 new를 붙이지 않으면 일반적인 함수로 활용 가능
- 이때 String 함수 반환값은 String 객체가 아닌 문자열
- String 함수에는 모든 데이터 타입을 문자열로 바꾸는 기능이 있음
const a = "합계", b = 234, c = 654; console.log(a + (b + c)); // 합계888 console.log(a + (String(b) + String(c))); // 합계234654
2. 문자열을 숫자로 변환
-
수식 안에서 묵시적으로 변환
var a = "2"; a - 0; // 첫 번째 방법 +a; // 두 번째 방법
- parselnt와 parseFloat 함수 사용
- parselnt: 문자열을 정수로 바꿈
- parseFloat: 문자열을 부동소수점으로 바꿈
- 두 함수 모두 첫 번째 문자를 숫자로 바꾼 값으로 반환, 이후 등장하는 문자열은 무시
parselnt("3.14"); // 3 parselnt("3.14 meters"); // 3 : 숫자 다음에 오는 문자열은 무시 parseFloat("3.14"); // 3.14 parseFloat("3.14 meters"); // 3.14 : 숫자 다음에 오는 문자열은 무시 parselnt(".5"); // NaN : 문자열 앞에 "."이 있으므로 해석하지 않음 parselnt("abc"); // NaN : 숫자로 인식할 수 없음 parselnt("101",2); // 5 : 문자열을 2진수로 해석해서 변환 parselnt("ff", 16); // 255 : 문자열을 16진수로 해석해서 변환
- Number 함수를 활용하는 방법
- Number 생성자 앞에 new를 붙이지 않으면 일반적인 함수로 활용 가능
- 이때 Number 함수 반환값은 Number 객체가 아닌 숫자
- Number 함수에는 모든 데이터 타입을 숫자로 바꾸는 기능이 있음
Number(true); // 1 Number(false); // 0 Number(NaN); // NaN Number(undefined); // NaN Number(null); // 0 const a = "234", b = "335", c = "문자"; const total = Number(a) + Number(b) + Number(c); console.log(total); // NaN
3. 논리값으로 변환
- !!a
- ! 연산자는 논리 타입이 아닌 값의 타입을 논치 타입으로 바꿈
- !를 하나 더 붙여서 참과 거짓을 뒤바꾸고 있음
- Boolean(a)