본문 바로가기
자바스크립트 (JavaScript)/이론

[ JS 데이터 ] 원시형 - String, Number

by Hwanii_ 2023. 10. 29.
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

 

반응형