TIL을 작성한지 7일이 되었다.
일기처럼 작성하는거긴 한데
이게 맞는건지 아직 잘 모르겠지만 그냥 작성한다.
오늘은 페어분과 함께 문제도 풀어보고
만들어본 계산기도 공유해봤다.
Number()
와 parseFloat()
의 차이점스택오버플로우에 더 자세한 답변이 나와있는데
한번 확인해보면 좋을듯 하다.
해당 링크의 답변에 적힌 코드를 보면 더 이해하기 쉬울것 같다.
parseFloat('3'); // => 3
Number('3'); // => 3
parseFloat('1.501'); // => 1.501
Number('1.501'); // => 1.501
parseFloat('1e10'); // => 10000000000
Number('1e10'); // => 10000000000
이것만 봤을때에는 문자열 숫자를 숫자로 바꿔주는 것만 알수 있지만
이 외에 세세한 차이는 아래와 같다.
parseFloat('1x'); // => 1
Number('1x'); // => NaN
문자열로 구성된 숫자를 숫자로 바꾸는 두가지 코드의 차이점이다.
Number(2x)
는 숫자로 바꾸면 NaN
이 출력된다.
parseFloat(2x)
는 숫자로 바꾸면 2
를 출력한다.
parseFloat('0x10'); // => 0
Number('0x10'); // => 16
Number()
는 16진수를 이해하고
parseFloat()
는 16진수를 이해하지 못한다.
parseFloat(''); // => NaN
Number(''); // => 0
parseFloat(' \r\n\t'); // => NaN
Number(' \r\n\t'); // => 0
Number()
는 빈 문자열이 있을 경우 제대로 작동하지 않는다.
parseFloat()
는 빈 문자열이 있을 경우 숫자가 아님을 나타낸다.
Number('0x10'); // => 16
+'0x10'; // => 16
Number('10x'); // => NaN
+'10x'; // => NaN
Number('40'); // => 40
+'40'; // => 40
Number()
는 +
를 이용해 짧게 작성할 수 있고
연산자를 사용해 작성하면 Number()
함수와 동일하게 작동한다.
짧게 작성할 수 있는 장점이 있지만
그냥 이렇게 작성할수도 있구나 정도만 알고 넘어가야겠다.