Javascript

#JavaScript Grammar_형 변환

k0z 2023. 10. 16. 11:56

# 형 변환이란? 

javascript의 데이터 타입 형태를 바꾸는 것을 뜻하며, 의도하지 않았지만 자동으로 바뀌는 것을 암시적 형 변환이라고 하고, 일부러 개발자가 의도적으로 바꾸는 것을 명시적 형 변환이라고 함. 


#1. 암시적 형 변환(Implicit Type Conversion)

암시적 형 변환은 JavaScript 엔진이 자동으로 데이터 타입을 변환하는 것을 의미.

1-1) 문자열(String)

let result1 = 1 + "2";
console.log(result1); // "12"
console.log(typeof result1); // "string"

let result2 = "1" + true;
console.log(result2); // "1true"
console.log(typeof result2); // "string"

- 두 경우 모두 숫자와 문자열이 연산되면 문자열로 암시적 형 변환이 발생하게 되며, 결과 값은 문자열. 

- 더하기 연산자로 만나면 문자열이 우선시 됨.  ex) { }, null. undefined + "1" => 문자열 

 

1-2) 숫자(Number)

let result3 = 1 - "2";
console.log(result3); // -1
console.log(typeof result3); // "number"

let result4 = "2" * "3";
console.log(result4); // 6
console.log(typeof result4); // "number"

-  + 연산이 아닌 -, *, / 연산은 JavaScript에서 문자열과 문자열 간, 또는 문자열과 숫자 간에도 숫자가 우선시되어 암시적 형 변환됨. 따라서 결과 값은 숫자로 나타남. 


#2. 명시적 형 변환(Explicit Type Conversion)

명시적 형 변환은 개발자가 의도적으로 데이터 타입을 변환하는 것을 의미. 데이터를 원하는 데이터 타입으로 변환하려고 할 때 사용됨. 

2-1) Boolean 

console.log(Boolean(0)); // false
console.log(Boolean("")); // false
console.log(Boolean(null)); // false
console.log(Boolean(undefined)); // false
console.log(Boolean(NaN)); // false

- 명시적으로 `Boolean( )` 함수를 사용하여 다양한 값들을 불리언으로 변환했고, 숫자 0, 빈 문자열, null, undefined, NaN은 모두 `false`로 변환됨. 

 

+++  추가로 아래의 경우와 비어 있지 않은 문자열이나 객체는 `true`로 명시적 변환이됨. 

console.log(Boolean("false")); // true
console.log(Boolean({})); // true

- ` Boolean("false")`: "flase"는 비어 있지 않은 문자열로 `true`로 변환됨.

- ` Boolean({ })`: 빈 객체는 비어 있지 않은 객체로 `true`로 변환됨 

 

2-2) 문자열(string)

let result5 = String(123);
console.log(typeof result5); // "string"
console.log(result5); // "123"

let result6 = String(true); 
console.log(typeof result6); // "string"
console.log(result6); // "true"

let result7 = String(false); 
console.log(typeof result7); // "string"
console.log(result7); // "false"

let result8 = String(null);
console.log(typeof result8); // "string"
console.log(result8); // "null"

let result9 = String(undefined);
console.log(typeof result9); // "string"
console.log(result9); // "undefined"

- `String( )` 함수를 사용하여 숫자, 불리언, null, undefined 등의 값을 문자열로 명시적 변환함. 

 

2-3) Number

let result10 = Number("123");
console.log(result10); // 123
console.log(typeof result10); // "number"

- `Number( )` 함수를 사용하여 문자열 "123"을 숫자로 명시적 변환함.