1. 변수
1. 변수 종류
- var (가변형 변수)
- let (가변형 블록 지역 변수)
- const (불변형 블록 지역 변수)
2. 변수 선언 방식 : var / let / const + 변수 이름;
- 지정된 초기값 없이 선언된 변수는 undefined 값을 가짐
3. 변수 선언 시 지켜야할 룰
- 대문자와 소문자 구별 → ex. let myAge (o) / let myage (x)
- 예약어를 쓸 수 없다는 것 → let if / let for / let while 등 (x)
4. 변수 할당
let myAge; // 변수 선언
myAge = 20; // 변수 할당
let myAge = 20; // 변수 선언과 동시에 할당
2. undefined / null
구분 | 공통점 | 차이점 |
undefined | - 값의 유무 표현 - 빈 값 / 없는 값 - 유일한 값 - 원시값 |
변수 선언 후 값을 할당 받지 않은 상태 |
null | 값이 없다는 것을 명시하는 것 |
3. 타입 변환
1. 묵시적 타입 변환
let myAge = 20;
let myAge = "20";
2. 명시적 타입 변환
- 종류 : Number() / String() / Boolean() / Object() / ParseInt() / ParseFloat()
let myAge = "20";
document.write(Number(myAge)); // 명시적 타입 변환
4. Boolean
1. Boolean : 참(true), 거짓(false) 값을 지닌 데이터 타입
2. Boolean 초기값
true | false 초기값 외 |
false | 0 / null / undefined / 빈 문자열" " / NaN / false 등 |
5. 부동소수점 연산 및 해결방법
let x = 0.4;
let y = 0.5;
let rtn = x + y; // rtn = 0.9
let x = 0.2;
let y = 0.1;
let rtn = x + y; // rtn = 0.300000000000004
console.log(Math.round(rtn)); // rtn = 0
console.log(rtn.toFixed(1)); // rtn = 0.3
1. Math.round() : 반올림 해주는 함수
2. toFixed(num) : num의 자릿수까지 반올림해 String으로 반환
6. Infinity
1. Infinity
- 무한대를 나타내는 값
- 숫자 타입
- 양의 무한대
- 64비트의 공간이 넘치는 경우
- 컴퓨터가 처리 가능한 가장 큰 수
2. isFinite(value)
- 유한/무한 숫자를 판별하는 함수
- true는 유한숫자 / false는 무한숫자
let num = Infinity;
let num2 = 5000000000000;
console.log(isFinite(num)); // false
console.log(isFinite(num2)); // true
7. Number.isInteger(num) / parseInt(num) / parseFloat(num)
1. isInteger()
- 정수인지 판별하는 함수
- 반환값은 true / false
- 반환 타입은 Boolean
console.log(Number.isInteger(10)); // true
console.log(Number.isInteger(true)); // false
2. parseInt()
- 정수로 변환하는 함수
- 반환 타입은 Number
let myAge = "12.22";
console.log(parseInt(myAge)); // 12
3. parseFloat()
- 실수로 변환하는 함수
- 반환 타입은 Number
let myAge = "12.62aaa";
let myAge2 = "12.22";
console.log(parseFloat(myAge)); // 12.62
console.log(parseFloat(myAge2)); // 12.22
8. Number.isNaN()
1. isNaN()
- NaN 인지 판별하는 함수
- 반환값은 true / false
- 반환 타입은 Boolean
console.log(Number.isNaN(NaN)); // true
console.log(Number.isNaN(0 / 0)); // true
console.log(Number.isNaN("NaN")); // false
console.log(Number.isNaN(undefined)); // false
console.log(Number.isNaN({})); // false
console.log(Number.isNaN("blabla")); // false
console.log(Number.isNaN(true)); // false
console.log(Number.isNaN(null)); // false
console.log(Number.isNaN(37)); // false
console.log(Number.isNaN("37.37")); // false
console.log(Number.isNaN("")); // false