-
JavaScript 05. 자바스크립트 - 형 변환JavaScript/1주차-JavaScript 문법 2023. 5. 26. 06:00
형 변환 : 형태를 바꾼다. 문자열을 숫자열로, 숫자열을 문자열로 등등.
1. 암시적 형 변환 : 개발자가 의도하지 않았고, 자동적으로 바뀌는 형 변환
2. 명시적 형 변환 : 개발자가 의도한 형 변환
1. 암시적 형 변환
문자열과 다른 데이터를 더하기(+)를 할 때, 문자열이 항상 우선시된다.
예를들어,
let result1 = 1 + "2"; console.log(result1); console.log(typeof result1);
여기에서 숫자열1과 문자열 "2"를 더하면
문자열화되어 typeof는 string으로 나오고, 숫자열1을 문자열로 취급하여 12로 나온다.
let result2 = "1" + true; console.log(result2); console.log(typeof result2);
문자열 "1"과 불리언(true)를 더해도 역시 문자열화 되어 typeof는 string 나오고,
true를 문자열 취급하여 1true라고 나온다.
다른 데이터들, { }, null, undefined + "1" 등등 다 문자열화 된다.
하지만, 더하기가 아닌 다른 연산자 빼기(-), 곱하기(*), 나누기(/) 에서는 항상 숫자열이 우선시된다.
let result3 = 1 - "2"; console.log(result3); console.log(typeof result3); -> 빼기이므로 문자열"2"을 숫자열취급. 답은 -1 let result4 = "2" * "3"; console.log(result4); console.log(typeof result4); ->곱하기이므로 문자열"2"와 "3"을 숫자열 취급. 답은 6
2. 명시적 형 변환
2-1. Boolean
console.log(Boolean(0)); console.log(Boolean("")); console.log(Boolean(null)); console.log(Boolean(undefined)); console.log(Boolean(NaN));
값은 false로 나옴. 위의 5개는 빈 문자열 취급함.
console.log(Boolean("false")); console.log(Boolean({}));
위의 2개는 true로 나옴. "false"와 {}는 값이 있는 문자열 취급함.
2-2. 문자열 명시적 형 변환
let result5 = String(123); console.log(result5); console.log(typeof result5); → 123, string let result6 = String(true); console.log(result6); console.log(typeof result6); → true, string let result7 = String(false); console.log(result7); console.log(typeof result7); → false, string let result8 = String(null); console.log(result8); console.log(typeof result8); → null, string let result9 = String(undefined); console.log(result9); console.log(typeof result9); → undefined, string
result값이 String일 경우 어떠한 데이터 타입도 다 string 문자열 형태로 도출됨.
2-3 숫자열 명시적 형 변환
let result10 = Number("123"); console.log(result10); console.log(typeof result10); → 123, number
result값이 Number인 경우 어떠한 데이터 타입도 다 number 숫자열 형태로 도출됨.
'JavaScript > 1주차-JavaScript 문법' 카테고리의 다른 글
JavaScript 07. 자바스크립트 - 함수 (0) 2023.05.26 JavaScript 06. 자바스크립트 - 연산자 (0) 2023.05.26 JavaScript 04. 자바스크립트 - 데이터 타입 (기타) (0) 2023.05.25 JavaScript 03. 자바스크립트 - 데이터 타입 (문자) (0) 2023.05.25 JavaScript 02. 자바스크립트 - 데이터 타입 (숫자) (0) 2023.05.25