숫자(number)
숫자는 따옴표로 감싸지 않고 그대로 적으면 된다. 따옴표로 감싼 숫자는 문자열이지 숫자가 아니다.
5;
5.04;
-5;
typeof 5; // "number"
typeof '5'; // "string"
'5'와 5는 프로그래밍에서 완전히 다른 개념임을 명심해야 한다.
지수표기법
지수표기법은 매우 큰 숫자나 소수점 아래 자릿수가 많을 때 숫자를 표현하는 방식이다. e 뒤에 나오는 숫자만큼 10의 거듭제곱을 하면 원래 숫자가 된다.
5e4; // 5 * 10000 = 50000
5e+4; // 5 * 10000 = 50000
5e-4; // 5 * (1/10000) = 0.0005
2진법
2진법은 컴퓨터에 친화적인 기수법이다. 2진법은 숫자 앞에 0b(숫자 영, 소문자 b)를 붙인다.
0b111 // 7
8진법
8진법은 숫자 앞에 0o(숫자 영, 소문자 o)을 붙인다.
0o111 // 73
// ▲ o 생략 가능
16진법
16진법도 컴퓨터에 친화적인 기수법이다. 16진법은 숫자 앞에 0x(숫자 영, 소문자 x)를 붙인다. 단 숫자는 0부터 9까지밖에 없으므로 10~15는 각각 알파벳 a, b, c, d, e, f 로 표현한다.
0x1a1 // 417
typeof 0x1a1 // “number”
NaN
- Not a Number의 약어이다.
✅ 엣지케이스 - NaN의 자료형은 number다.
typeof NaN // “number”
문자열을 숫자로 바꾸기
자바스크립트는 하나의 자료형을 다른 자료형으로 바꾸는 함수를 제공한다.
parseInt('3.14') // 3
parseFloat('3.14') // 3.14
Number('3.14') // 3.14
typeof parseInt('123') // “number”
<제로초님의 조언>
👉 문자열 '123'이 숫자로 변환됐는지 확인해라.우리의 감을 믿지말고 코드로쳐서 항상 확인해라.
parseInt( )와 Number( )의 차이점
parseInt('3월') // 3
Number('3월') // NaN
사진 mdn Number() 설명 에서 말하는 문자열이란 '123' 과 같이 따옴표 안에 숫자만 있는 문자열을 의미한다.
'3월'과 같이 숫자만 있지않고 다른 자료형이 있다면 Number 타입으로 변환하지 못하고 NaN을 리턴한다.
콘솔에 prompt()를 입력해 값을 입력받아 보자. prompt()를 사용하면 우리가 직접 값을 입력할 수 있다.
값을 입력 후에는 prompt() 자리가 우리가 입력한 값으로 대체된다.
typeof parseInt(prompt());
(값을 입력받는 대화창이 뜨면 아무 숫자나 입력해라)
// "number"
prompt()는 문자열을 입력받는다. 그래서 parseInt로 숫자로 형 변환 해주어야지 typeof 연산자를 사용했을때 "number"가 나올것이다.
parseInt() 다른 기수법 적용하기
parseInt()는 문자열을 숫자로 바꿀 때도 사용하지만, 다른 기수법을 적용하는 데도 사용한다. 해석하려는 값 뒤에 적용하려는 기수법을 의미하는 숫자를 콤마로 구분해 적어준다.
2진법으로 해석
parseInt(111, 2); // 7
7진법으로 해석
parseInt(111, 7); // 57
10진법으로 해석
parseInt(111, 10); // 111
parseInt(111); // 111
// ▲ 둘은 같은 의미 10진법은 생략가능
산술연산자
+, -, *, / 사용가능
나눗셈의 나머지를 구하는 연산자 %
6 % 4 // 2
거듭제곱하는 연산자 **
2 ** 4 // 16
무한 값 알아보기(Infinity)
2/0; // Infinity
-2/0; // -Infinity
typeof Infinity; // “number”
자바스크립트에서는 무한이라는 수를 표현하는 Infinity 값을 사용한다.
Infinity - 100; // Infinity
// ✅ 무한 값끼리 계산할 때는 NaN
Infinity - Infinity; // NaN
// ✅ 0을 0으로 나눠도 NaN
0 / 0; // NaN
문자와 숫자 더하기
'문자열' + 0 // "문자열0"
✅문자열과 다른 자료형을 더하게 되면 다른 자료형이 먼저 문자열로 형 변환된 후 문자열과 더해진다.
'9' - 5; // 4
'3월' - 0; // NaN
✅더하기를 제외한 연산을 할때는 다른 자료형이 먼저 숫자로 형 변환된 후 연산을 하게된다.
다른 자료형에 parseInt()가 아니라 Number()가 적용된다고 보면 된다.
'강의 정리 > 제로초 자바스크립트' 카테고리의 다른 글
🔖 2-6. 불 값(boolean, 값들의 비교) (0) | 2023.02.27 |
---|---|
🔖 2-5. 연산자 우선순위, 소수 계산 주의점 (0) | 2023.02.27 |
🔖 2-3. 문자열 합치기(연산자) (0) | 2023.02.27 |
🔖 2-2. 문자열 기본 (따옴표,백틱,typeof,escape) (0) | 2023.02.27 |
🔖 2-1. 세미콜론, 주석, 들여쓰기 (0) | 2023.02.27 |