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

HeuiEun Choi·2022년 12월 8일
0

javascript

목록 보기
4/39
post-custom-banner

string

string을 표기하는 방식에는 3가지가 존재한다.

const string1 = "Hello1";
const string2 = 'Hello2';
const string3 = `Hello3 ${string1} and ${string2}`;
console.log(`this is string3 : ${string3}`);

string3의 방식으로 만들어낸 데이터를 템플릿 리터럴이라고 한다. 이때 리터럴이란 소스코드의 고정된 그 값자체를 의미한다.

number

const number1 = -123;
const number2 = 3.14;
const number3 = .14; // css 에서 많이 보이는 유형

number를 선언할때 위에처럼 사용되며,

// 주의할점
console.log(number1 + undefined); //NaN
console.log(typeof (number3 + undefined)); //number
console.log(typeof (number3)); //number

위처럼 undefined + number가 연산이 되면 NaN(Not a Number)가 된다. 즉 typeof를 통해 디버깅을 하면 number3 + undefined 의 타입은 number가 된다. 즉 잘못된 값이 들어와 type은 Number이지만 값 자체는 숫자가 아니기 때문에 NaN이라고 표시된다.

const a = 0.1 ;
const b = 0.2 ;
console.log(a +b );

아래의 결과는 0.3이라고 예상을 한다. 하지만 아래 그림처럼 엉뚱한 결과가 나온다. 이런부분이 왜 발생하느냐? 부동소숫점의 오류 때문이다.

우리는 기본적으로 숫자를 표현하려면 10진수로 표현을 하는데, 컴퓨터가 10진수를 2진수로 표현해야 하기 때문에 간혹 무한소수의 개념이 발생되며, 초과나 손실과 같은 오류가 발생할 수 있다.
그렇기 때문에 추가적으로 작업이 필요하다.

const result = (a+b).toFixed(1);

다만, 조심해야할것은 toFixed 메서드는 string으로 변환이 된다. 그렇기 떄문에 Number로 형변환을 해줘야 한다.

const result = Number((a+b).toFixed(1));

profile
당신을 한줄로 소개
post-custom-banner

0개의 댓글