JavaScript 형변환

ctrs·2023년 5월 23일
0
post-custom-banner

형변환
형태(data type)를 바꾼다.
명시적 형 변환과 암시적 형 변환이 있으며
일부러 한 것인지, 의도하지 않았지만 JS 규칙에 따라 자동으로 바뀐 것인지의 차이가 있다.


1. 암시적

1-1. string, 문자열

let result1 = 1 + "2"; // number + string, 숫자 + 문자열
console.log(result1); // 출력: 12
console.log(typeof result1); // 출력: string
// result1의 출력결과가 12로 나와 데이터타입이 number로 보일 수 있으나
// number인 1과 string인 "2"를 더했기에 변환되어 string으로써의 12가 되었다.

let result2 = "1" + true; // string + boolean, 문자열 + 불리언
console.log(result2); // 출력: 1true
console.log(typeof result2); // 출력: string

// string(문자열)과 다른 데이터 타입이 + 연산자로 만나면 string이 우선시 된다.

// {}, null, undefined 와 "string" 을 더하면 모두 string으로 변환한다.

1-2. number, 숫자

let result3 = 1 - "2"; // number - string
console.log(result3); // 출력: -1
console.log(typeof result3); // 출력: number
// number와 string을 빼면 number로 변환한다.

let result4 = "2" 곱하기 "3"; // string 곱하기 string, 사실 곱하기의 기호는 shift+8, 별표이나 벨로그에선 이게 나오지 않나보다. 입력해도 빈 글자만 나온다
console.log(result4); // 출력: 6
console.log(typeof result4); // 출력: number
// string과 string을 곱해도 number로 변환한다.

// 더하기가 아닌 빼기, 곱하기, 나누기 연산자는 number 숫자를 우선시한다.


2. 명시적 형 변환

2-1. boolean, 불리언

console.log(Boolean(1)); // 출력: false
// 본래 데이터 타입이 number인 0을 Boolean으로 변환하여 거짓이 되었다.

console.log(Boolean("")); // 출력: false, 빈 문자열은 거짓이 된다.

console.log(Boolean("false")); // 출력: true, 값이 있는 문자열은 참이 된다.

console.log(Boolean(null)); // 출력: false

console.log(Boolean(undefined)); // 출력: false

console.log(Boolean(NaN)); // 출력: false

console.log(Boolean({})); // 출력: true 객체는 값이 비어있더라도 참이 된다.
// 위 값들 모두 저마다의 데이터 타입이 있었지만 전부 boolean으로 변환되었다.

2-2. string, 문자열

let result5 = String(123); // number 타입을 string으로 변환
console.log(result5); // 출력: 123
console.log(typeof result5); // 출력: string

let result6 = String(true); // boolean 타입을 string으로 변환
console.log(result6); // 출력: true
console.log(typeof result6); // 출력: string

let result7 = String(false); // boolean 타입을 string으로 변환
console.log(result7); // 출력: false
console.log(typeof result7); // 출력: string

let result8 = String(null); // null 타입을 string으로 변환
console.log(result8); // 출력: null
console.log(typeof result8); // 출력: string

let result9 = String(undefined); // undefined 타입을 string으로 변환
console.log(result9); // 출력: undefined
console.log(typeof result9); // 출력: string

1-3. number, 숫자

let result10 = Number("123"); // string 타입을 number로 변환
console.log(result10); // 출력: 123
console.log(typeof result10); // 출력: number

profile
저장을 습관화
post-custom-banner

0개의 댓글