NaN, parseInt, 부동소수점, escape

적자생존·2022년 6월 16일
0

javascript restart

목록 보기
1/31

1. NaN

NaN이란 Not a Number의 줄인말이며 숫자가 아니다라고 알려주는 기호

그래서

바나나에서 사과를 빼면 NaN가 나오지만

typeof NaN을 해보면 숫자라고 알려준다....

사람의 직관하고 다른 건 외워줘야 한다.

NaN은 숫자는 아니지만 숫자다!

2. parseInt

parseInt는 정수로 바꾸다라는 개념이다.

즉 문자를 정수로 바꾸는 명령어인 것이다.

하지만 문자를 숫자로 바꾸는 명령어에는 Number도 있다

그럼 둘의 차이가 무엇인가??

소수는 parseInt명령어에 의해서 정수로 변경이 되고 Number에 의해서는 그냥 소수 그대로가 나온다.

참고

parseFloat을 하면 소수로 나옴

그렇다면 Number가 개꿀이네??

문자열 3월이 parseInt와 만나면 3이 반환되지만 Number와 만나면 NaN이 반환이 된다.

Number의 경우에는 진짜 문자가 들어가면 NaN이 나오고 parseInt의 경우에는 문자가 들어가 있어도 숫자만 반환이 되서 나온다.

가장 앞에 있는 숫자를 반환함.

컴퓨터 언어는 대부분 같은 기능을 하면 둘 중 하나는 없애버림

3. 부동 소수점 계산

컴퓨터의 치명적인 약점인 소수점 계산

왜?

자바스크립트에서는 문자열 아니면 숫자열이기 때문에 과거 컴퓨터 성능이 좋지 않았을 때 만들어진 언어이기 때문에 숫자의 타입의 크기를 지정해서 메모리를 효율적으로 사용하기 위해 타입이 분류되었으나 최근에는 성능이 좋아지면서 신경을 덜쓰게 됨

그래서 이진법으로 나타난 소수들은 계산하기 쉬운 반면 그렇지 않은 소수들은 계산에서 오류가 남!

대표적으로 0.1 + 0.2가 있음

해결법

정수로 바꿔준 다음 소수로 만들면 된다.

이놈들이 정수는 기가막히게 계산을 잘하기 때문에 0.1 + 0.2가 아닌 1 + 2로해서 10으로 나눠주면 된다.

4. escape

코드 작성시 줄바꿈하고 싶고 그런데 컴퓨터는 enter를 인식하지 못하기 때문에 이스케이프라는 것이 존재함

즉 특수문자를 사용할 수 있게 해주는 것으로 다음과 같다

줄바꿈(개행) 사용 예시

근데 템플릿리터럴이 나오면서 잘 안사용하게 됨

나중에 나오지만 간단히 보자면 백틱(``)으로 감싸서 사용하고 백틱안에 모든 것들은 문자열로 인식하게 됨

템플릿리터럴 사용 예시

profile
적는 자만이 생존한다.

0개의 댓글