728x90
// [ JS 데이터 ] 원시형 - String, Number
// " " / ' ' 은 취향의 차이 이다.
// ` ` 은 어떠한 데이터를 문자형 데이터 내부에 추가하여 채워 넣을 때 사용 한다.
// ${} 을 사용 하고, 이러한 방식을 템플릿 리터럴 이라고 부른다.
const string1 = "Hello" // 큰 따옴표.
const string2 = 'Hello' // 작은 따옴표.
const string3 = `Hello ${string1} ?!` // 백틱을 사용한 템플릿 리터럴 방식.
console.log(string2) // Hello
console.log(string3) // Hello Hello ?!
// =========================================================================
// 숫자 데이터.
// 간단한 계산 가능 / 음수도 저장 가능.
const number1 = 123
console.log(number1 + 1) // 123 + 1 = 124
const number2 = -123
console.log(number2) // -123
// =========================================================================
// 소수도 저장 가능.
const pi = 3.14
console.log(pi) // 3.14
const testNumber1 = -123.1234
const testNumber2 = .14 // 0은 생략 가능.
console.log(testNumber1) // -123.1234
console.log(testNumber2) // 0.14
// =========================================================================
// NaN => Not a Number (숫자가 아닌 숫자)
// 데이터의 타입은 숫자인데, 숫자로 표기 할 수 없는 값을 의미.
// 즉, NaN 이 출력 되면, 숫자 데이터에 숫자가 아닌 데이터를 계산 했는지를 의심해 봐야 한다.
// typeof() 를 사용 해서 인자에 있는 데이터의 타입을 확인 할 수 있다.
const testNumber3 = 96
console.log(testNumber3 + undefined) // NaN
console.log(typeof (testNumber3 + undefined)) // number
// =========================================================================
// 부동 소수점 오류
// 컴퓨터는 0과 1의 이진수를 사용 해서 동작.
// 숫자를 표현 할 때는, 기본적으로 십진수를 사용.
// 컴퓨터는 십진수를 이진수로 표현 해야 하기 때문에, 간혹 무한 소수 라는 개념이 발생.
// 무한 하지 않고, 유한 하게 표현 하기 위해, 세부적인 값의 초과 또는 손실로 계산 오류가 발생.
const a = 0.1
const b = 0.2
console.log(a + b) // 0.30000000000000004
// 1을 작성 하면, 소수점의 첫번째 자리까지만 남겨 놓고 모두 제거.
// 대신에 toFixed() 메서드는 숫자 데이터를 문자 데이터로 변경 한다.
console.log((a + b).toFixed(1)) // toFixed(소수점 단위)
console.log(typeof (a + b).toFixed(1)) // string
// 그래서 Number() 라는 내장 함수가 존재 한다.
// 이것을 사용 하면, 문자열 데이터를 숫자형 데이터로 변경 할 수 있다.
console.log(typeof Number(((a + b).toFixed(1)))) // number
console.log(Number((a + b).toFixed(1))) // 0.3
반응형
'자바스크립트 (JavaScript) > 이론' 카테고리의 다른 글
[ JS 데이터 ] 참조형 - Array (0) | 2023.10.30 |
---|---|
[ JS 데이터 ] 원시형 - Boolean, null, undefined (0) | 2023.10.30 |
생성자 함수 개념 (0) | 2023.08.27 |
변수, 호이스팅, TDZ (Temporal Dead Zone) 요약 (0) | 2023.08.20 |
변수, 호이스팅, TDZ (Temporal Dead Zone) 개념 (0) | 2023.08.20 |