Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
Tags
- javascript 수학
- 채팅개발
- useMemo
- 타입스크립트
- 유니온타입
- Union Type
- useCallback
- intersection type
- 프론트앤드 사이드프로젝트
- 개발일기
- javascript
- html
- 리터럴타입
- 프론트앤드개발자
- 인터섹션타입
- next.js
- 프론트앤드 기초
- 리액트
- 프론트앤드개발
- 자바스크립트
- CSS
- 프론트앤드 개발자
- prompth
- frontend
- react
- 리액트기초
- react기초
- 프론트앤드
- typescript
- 타입스크립트 기초
Archives
- Today
- Total
404 page not found : 기록장
[Javascript] 형 변환 본문
자바스크립트에서는 다양한 자료형을 다룰 수 있습니다. 때로는 서로 다른 자료형을 연산하거나 비교해야 할 때가 있습니다. 이때 자동 형 변환이 일어나기도 하지만, 명시적으로 형을 변환해주는 것이 더욱 안전하게 코드를 작성할 수 있습니다.
문자열로 변환
숫자나 불리언 값 등을 문자열로 변환하려면, 각 값의 toString() 메소드를 사용하면 됩니다.
let num = 123;
let booleanValue = true;
console.log(num.toString()); // "123"
console.log(booleanValue.toString()); // "true"
숫자로 변환
문자열을 숫자로 변환하려면 parseInt()나 parseFloat() 메소드를 사용합니다.
let strNum = "456";
let strFloat = "3.14";
console.log(parseInt(strNum)); // 456
console.log(parseFloat(strFloat)); // 3.14
아래는 숫자형으로 변환 시 적용되는 규칙입니다.
전달받은 값 형 변환 후
undefined | NaN |
null | 0 |
true and false | 1 과 0 |
string | 문자열의 처음과 끝 공백이 제거됩니다. 공백 제거 후 남아있는 문자열이 없다면 0, 그렇지 않다면 문자열에서 숫자를 읽습니다. 변환에 실패하면 NaN이 됩니다. |
불리언 값으로 변환
자바스크립트에서 falsy한 값들은 false로, truthy한 값들은 true로 변환됩니다. falsy한 값에는 0, "", NaN, null, undefined 등이 있습니다.
console.log(Boolean(0)); // false
console.log(Boolean("")); // false
console.log(Boolean(null)); // false
console.log(Boolean(undefined)); // false
console.log(Boolean(1)); // true
console.log(Boolean("hello")); // true
console.log(Boolean({})); // true
예외 상황
형 변환에서 주의해야 할 점은 다음과 같습니다.
console.log(4 + "5"); // "45"
console.log("4" - 2); // 2
console.log("hello" * 2); // NaN
위 예시 중 첫 번째와 같이 문자열과 숫자를 더하면, 숫자가 문자열로 변환되어 두 문자열이 이어져 나타나게 됩니다. 두 번째 예시와 같이 문자열에서 숫자를 빼면, 문자열이 숫자로 변환되어 계산됩니다. 하지만 세 번째 예시와 같이 문자열과 숫자를 곱하면, NaN(Not a Number)이 반환됩니다.
형 변환을 사용할 때는 이런 예외 상황을 잘 고려해야 합니다.
'JAVASCRIPT' 카테고리의 다른 글
[Javascript] 자바스크립트 비교연산자 (0) | 2023.03.17 |
---|---|
[Javascript] 기본 연산자와 수학 (0) | 2023.03.16 |
[Javascript] alert, prompt, confirm을 이용한 상호작용 (0) | 2023.03.14 |
[Javascript] 자료형 (0) | 2023.03.13 |
[Javascript] Prototype (0) | 2023.03.10 |