카테고리 없음

자바 스크립트 1주 5-명시적, 암시적 형변환

8나지 2024. 4. 22. 10:50

형 변환 : 명시적(;일부러 바꿈), 암시적(;의도하지 않았지만 바뀜)

1. 암시적 

1-1. 문자열

let result1 = 1 + "2"; (숫자형에서 문자열 더하기) 자동으로, 암시적으로 '숫자와 문자' 만나면 문자열

console.log(result1);                       12

console.log(typeof result1);           string

 

let result1 = "1" + ture;                      자동으로, 암시적으로 '숫자와 문자' 만나면 문자열

console.log(result2);                       1ture. 

console.log(typeof result2);           string   ; 불리언이 아닌 스트링으로 나옴

 

즉, 문자열과 다른 데이터 타입인 숫자나 불리언 등이 +로 만나면 문자열이 우선시로 형 변환

{}, null, undefined + "1" => 문자열

 

1-2. 숫자열

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

 

+ : 두가지 데이터타입 결합 

-, *, / 등 다른 연산자 : 숫자가 우선시 ("2"*"3"처럼 문자와 문자로 왔을 때도 숫자 우선시)


2. 명시적 형변환 ; 어떠한 타입으로 형 변환 할 것인지 명시적으로 써 줘야함.

2-1. boolean

console.log(boolean()); ()안에 타입을 boolean으로 변환할 것

ex)

console.log(boolean(0));                false - 다섯개 모두 불리언타입은 아니였지만 불리언 바꿔보면 모두 false

console.log(boolean(""));                false

console.log(boolean(null));             false

console.log(boolean(undefined)); false

console.log(boolean(NaN));          false

 

console.log(boolean("false"));        true - 값이 있는 문자열은 ("안에 false가 있어도") true

console.log(boolean({}));                 true - 객체는 값이 비어있어도 true

 

2-2. 문자열                                        실제 스트링이 아니더라도 let ___ = string을 통해 스트링으로 변환

let result5 = string(123);                   

console.log(typeof result5);             string - 숫자 임에도 문자를 뜻하는 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(result6);                         false

 

 

let result8 = string(null);                   

console.log(typeof result8);             string

console.log(result6);                         null

 

 

let result9 = string(undefined);                   

console.log(typeof result9);             string

console.log(result6);                         undefined

 

1-3 number

let result10 = number("123");           123에 ""를 넣어 문자로 집어넣어줌

console.log(result10);                        123

console.log(typeof result10);            number