home강의 홈으로
Section 2. 자료형과 연산자
Lesson 5. 숫자(Number)와 관련 연산자
I. 숫자 자료형으로 표현되는 것
1. 양과 음의 정수와 실수
// 자바스크립트에는 정수와 실수의 자료형이 따로 있지 않음
let integer = 100;
let real = 1.234;
let negative = -5.67;
console.log(
typeof integer,
typeof real,
typeof negative
);
2. 무한대
let x = 1 / 0;
console.log(x, typeof x);
// 무한대에는 양음이 있음
console.log(-x, typeof -x);
let y = -1 / 0;
console.log(y, typeof y);
let z = Infinity;
console.log(z, typeof z);
3. 숫자가 아닌 것 Not a Number
let x = 1 / 'abc';
let y = 2 * '가나다';
let z = NaN;
console.log(x, typeof x);
console.log(y, typeof y);
console.log(z, typeof z);
// NaN은 양음이 없음
console.log(-NaN);
⭐️ 주어진 값이 NaN
인지 여부 확인하는 방법
let x = 1 / 'abc';
console.log(
x,
x == NaN,
x === NaN,
isNaN(x), // 숫자가 아닐 시 true
Number.isNaN(x) // 보다 엄격한 버전
);
isNaN
과 Number.isNaN
의 차이
console.log(
typeof '1', isNaN('1'), Number.isNaN('1')
); // 특정 숫자로 변환 가능한 문자
console.log(
typeof true, isNaN(true), Number.isNaN(true)
); // true는 1, false는 0으로 변환됨
console.log(
typeof 'a', isNaN('a'), Number.isNaN('a')
); // ⚠️ 특정 숫자로 변환 불가인 문자의 경우 차이
console.log(
typeof (1/'a'), isNaN(1/'a'), Number.isNaN(1/'a')
); // NaN값인 경우
간단정리
기능 ( 메서드 ) |
설명 |
isNaN |
숫자가 아니다 싶으면 무조건 true 반환 |
Number.isNaN |
숫자 자료형인 주제에 숫자가 아니어야만 true 반환 |
II. 연산자
1. 산술 연산자
a. 이항 산술 연산자
+
, -
, *
, /
, %
, **
- 셈의 결과를 반환
- 부수효과 없음
// 값 반환
let x = 10;
let y = x * 10;
console.log(y);
console.log(
y + 1, // 덧샘
y - 1, // 뺄셈
y * 2, // 곱셈
y / 5, // 나눗셈
y % 3, // 나머지
y ** 2 // 제곱
);
// 부수효과 없음
console.log(y);
// 널리 사용되는 홀수와 짝수의 판별법
console.log(
'홀수 ',
123 % 2,
55 % 2,
999 % 2
);
console.log(
'짝수 ',
2 % 2,
100 % 2,
8 % 2
);
💡 괄호의 사용
console.log(
4 * 1 + 2,
4 * (1 + 2),
4 * -(1 + 2),
-(4 * -(1 + 2))
);
b. 단항 산술 연산자
연산자 |
반환 |
부수효과 |
a ++ |
값 그대로 |
1 증가 |
++a |
1 증가한 값 |
1 증가 |
a -- |
값 그대로 |
1 감소 |
--a |
1 감소한 값 |
1 감소 |
+a |
값 그대로 |
없음 |
-a |
양음을 반전한 값 |
없음 |
let x = 10;
// 값을 반환부터 하고 증가
console.log('1.', x++, x);
// 값을 증가부터 하고 반환
console.log('2.', ++x, x);
let x = 3;
let y = 4;
// 💡 부수효과가 일어나는 시점
console.log(x-- * --y, x, y);
let x = 1;
console.log(
+x,
-x,
-(-x),
-(x++),
-x * -1
);
💡 문자열을 숫자로 바꿈
console.log(
+'100',
-'100',
+'abc' // 숫자로 변환될 수 없는 문자열
);
let x = '100';
console.log(x++, x);
let y = '100';
console.log(--y, y);
// 숫자로 변환될 수 없는 문자열
// 첫 번째 값 주의 - 증가 이전에도 변환
let z = 'abc';
console.log(z++, z);
2. 할당 산술 연산자 부수효과
연산자 |
의미 |
x += y |
x = x + y |
x -= y |
x = x - y |
x *= y |
x = x * y |
x /= y |
x = x / y |
x %= y |
x = x % y |
x **= y |
x = x ** y |
let x = 3;
x += 2;
console.log(x);
x -= 3;
console.log(x);
x *= 12;
console.log(x);
x /= 3;
console.log(x);
x %= 5;
console.log(x);
x **= 4;
console.log(x)
let y = 25;
console.log(
y **= 0.5, // 할당된 결과 반환
y
);
🍿 다음 강: 이론영상 - Float 타입
- 자바스크립트 숫자 자료형의 원리
-
아래 계산의 결과가 정확하지 않은 이유
0.1 + 0.2
🤔얄코에게 질문하기질문은 반.드.시 이리로 보내주세요! ( 강의사이트 질문기능 ✖ )
🛑질문 전 필독!!
- 구글링을 먼저 해 주세요. 들어오는 질문의 절반 이상은 구글에 검색해 보면 1분 이내로 답을 찾을 수 있는 내용들입니다.
- 오류 메시지가 있을 경우 이를 구글에 복붙해서 검색해보면 대부분 짧은 시간 내 해결방법을 찾을 수 있습니다.
- 강의 페이지에 추가사항 등 놓친 부분이 없는지 확인해주세요. 자주 들어오는 질문은 페이지에 추가사항으로 업데이트됩니다.
- "유료파트의 강의페이지는 어디 있나요?" - 각 영상의 시작부분 검은 화면마다 해당 챕터의 강의페이지 링크가 있습니다.
- 질문을 보내주실 때는 문제가 어떻게 발생했고 어떤 상황인지 등을 구체적으로 적어주세요. 스크린샷을 첨부해주시면 더욱 좋습니다.