WeniVooks

검색

JavaScript 에센셜

형 변환

자바스크립트에서 형 변환은 데이터 타입을 다른 데이터 타입으로 변환하는 과정입니다.

  • 명시적 변환(Explicit Conversion): 개발자가 의도적으로 데이터 타입을 변환하는 것
  • 암시적 변환(Implicit Conversion): 자바스크립트 엔진이 데이터 타입을 자동으로 변환하는 것

1. 문자열 변환

1.1 String() 생성자 함수

String() 생성자 함수를 사용하면 다른 데이터 타입을 문자열로 변환 할 수 있습니다.

console.log(String(10)); console.log(String(Infinity)); console.log(String(NaN)); console.log(String(true)); console.log(String(false)); console.log(String(null)); console.log(String(undefined)); console.log(String({name: '라이캣'})); console.log(String([1, 2, 3]));
1.2 toString() 메서드

toString() 메서드로 문자열로 변환할 수 있습니다. null과 undefined는 toString() 메서드를 사용할 수 없습니다.

숫자의 toString() 메서드는 특정 진법으로 변환할 수 있는 기능도 제공합니다.

console.log((10).toString()); console.log((10).toString(2)); // 2진수로 변환 console.log(Infinity.toString(2)); // 2진수로 변환 console.log(NaN.toString(2)); // 2진수로 변환 console.log(true.toString()); console.log(false.toString()); console.log({name: '라이캣'}.toString()); console.log([1, 2, 3].toString());
1.3 연산자를 이용한 문자열 변환

빈 문자열과 문자열 연결 연산을 이용하여 값을 문자열로 변환할 수 있습니다.

console.log('' + 10); console.log('' + Infinity); console.log('' + NaN); console.log('' + true); console.log('' + false); console.log('' + null); console.log('' + undefined); console.log('' + {name: '라이캣'}); console.log('' + [1, 2, 3]);

2. 숫자 변환

2.1 Number() 생성자 함수

Number() 생성자 함수를 사용하면 다른 데이터 타입을 숫자로 변환 할 수 있습니다.

console.log(Number('10')); console.log(Number('10.5')); console.log(Number('0x1F')); console.log(Number(true)); console.log(Number(false)); console.log(Number(null)); // 0 console.log(Number(undefined)); // NaN console.log(Number({name: '라이캣'})); // NaN console.log(Number([1, 2, 3])); // NaN console.log(Number(['5'])) // 5 console.log(Number({})) // NaN console.log(Number([])) // 0

객체의 원시타입 변환

객체 타입이 원시 타입으로 변환될 때는 다음 과정을 거칩니다.

  1. 원시 값으로 변환하기 위해 valueOf() 메서드 호출
  2. 원시 값이 반환되지 않으면 toString() 메서드 호출
  3. toString() 메서드도 원시 값이 반환되지 않으면 에러 발생
console.log(Number([false]));
console.log(Number([false]));
  1. [false]는 객체이므로 valueOf() 메서드 호출
  2. 원시값을 반환하지 않으므로 toString() 메서드 호출 -> 'false'
  3. 'false'는 숫자로 변환할 수 없으므로 NaN 반환
2.2 ParseInt(), parseFloat() 함수

parseInt()와 parseFloat() 함수를 사용하여 문자열을 정수 또는 부동 소수점 숫자로 변환할 수 있습니다. 문자가 중간에 있으면 해당 문자까지만 변환합니다. 숫자로 변환할 수 없는 경우에는 NaN을 반환합니다.

console.log(parseInt('10')); console.log(parseInt('10.5')); console.log(parseInt('0x1F')); console.log(parseFloat('10')); console.log(parseFloat('10.5')); console.log(parseFloat('0x1F'));

parseInt는 두 번째 인자로 진법을 지정할 수 있습니다.

parseInt()는 두 번째 인자로 **진법(radix)**을 지정할 수 있습니다.

console.log(parseInt('11', 2)); // 3 (2진수로 해석) console.log(parseInt('11', 8)); // 9 (8진수로 해석) console.log(parseInt('11', 10)); // 11 (10진수로 해석) console.log(parseInt('11', 16)); // 17 (16진수로 해석)
2.3 연산자를 이용한 숫자 변환

+ 단항 연산자 또는 산술 연산자 (*, /)를 이용하면 값을 숫자로 변환할 수 있습니다.

console.log(+'10'); console.log(+'10.5'); console.log(+'0x1F'); console.log(+true); console.log(+false); console.log(+null); console.log(+undefined);
console.log('10' * 1); console.log('10' / 1); console.log('10.5' * 1); console.log('10.5' / 1); console.log('0x1F' * 1); console.log(true * 1); console.log(true / 1);

3. 불리언 변환

3.1 Boolean() 생성자 함수

Boolean() 생성자 함수를 사용하면 다른 데이터 타입을 불리언으로 변환 할 수 있습니다.

console.log(Boolean('')); console.log(Boolean('Hello')); console.log(Boolean(0)); console.log(Boolean(1)); console.log(Boolean(-10)); console.log(Boolean(null)); console.log(Boolean(undefined)); console.log(Boolean({})); console.log(Boolean([]));
3.2 논리 부정 연산자(!)를 이용한 불리언 변환

! 논리 부정 연산자를 이용하면 값을 불리언으로 변환할 수 있습니다.

console.log(!!''); console.log(!!'Hello'); console.log(!!0); console.log(!!1); console.log(!!-10); console.log(!!null); console.log(!!undefined); console.log(!!{}); console.log(!![]);
4.3 객체타입 메서드5장 코드 제어하기