타입과문법 2.3.2 작은 소수 값 부동 소수점 숫자의 부작용 자바스크립트는 현대의 대부분의 프로그래밍 언어들과 마찬가지로 'IEEE 754'표준(부동 소수점 표준)을 따르는데 이는 부동 소수점 계산에 이슈가 생긴다. 만약 이렇게 소수점 계산을 하고나서 같은지 체크를 하고 싶을 때가 있는데, 상식적으로 사람이 생각한 것과 다른 결과값이 나오기 때문에 저 문제를 해결하는 방법이 필요하다. 이럴 때 Number.EPSILON 을 ... JavaScript타입과문법JavaScript 2.3.3 안전한 정수 범위 정수는 Number.MAX_VALUE보다 훨씬 작은 수준에서 '안전'값의 범위가 정해져 있다. 약 9천조 정도 되는 숫자인데 이거보다 더 큰 값을 다뤄야 하는 경우라면 와 같은 라이브러리를 사용하는 것이 좋다.... JavaScript타입과문법JavaScript 2.3.4 정수인지 확인 ES6부터는 Number.isInteger()로 어떤 값의 정수 여부를 판단 가능하다. ES6 이전 버전을 위한 폴리필 안전한 정수 여부는 ES6부터 Number.isSafeInteger()로 체크한다. ES6 이전 버전을 위한 폴리필... JavaScript타입과문법JavaScript 2.3.5 비트(부호 있는) 정수 정수의 '안전 범위'가 약 9천조 정도지만, 32비트 숫자만 가능한 연산이 있어서 실제 범위는 훨씬 작다. 32비트를 고려한 범위는 Math.pow(-2,31) (약 -21억)에 Math.pow(2,31)-1 (약 +21억)까지다. 아래와 같이 비트 연산자로 체크할 수도 있다. 이런식으로 쓰면 '숫자 값 -> 32비트 부호 있는 정수'로 강제변환을 한다. | 비트 연산자는 32비트 정수 값에... JavaScript타입과문법JavaScript 2.4.1 값 아닌 값 undefined 타입의 값은 undefined밖에 없고 null 타입의 값은 null뿐이다. 이 둘은 타입과 값이 항상 같다. 결론 undefined와 null은 빈 값과 값 아닌 값을 나타냄 null은 식별자가 아니라 뭔가를 할당할 수 없지만 undefined는 뭔가를 할당할 수 있어서 주의가 필요하다.!... JavaScript타입과문법JavaScript 2.4.2 undefined undefined의 할당 느슨한 모드에서는 전역 스코프에 undefined에 값을 할당할 수 있다.(절대 비추천) 그런데 황당한 것은 undefined라는 지역변수를 생성할 수 있다. 절대 이렇게 쓰지 말자. void 연산자 보이드 연산자는 어떤 값이든 무효로 만드는 특징이 있어서 값을 undefined로 만들어 버린다. 기존 값은 건드리지 않기 때문에 !(부정 연산자)를 쓰고 싶지 않을 때... JavaScript타입과문법JavaScript
2.3.2 작은 소수 값 부동 소수점 숫자의 부작용 자바스크립트는 현대의 대부분의 프로그래밍 언어들과 마찬가지로 'IEEE 754'표준(부동 소수점 표준)을 따르는데 이는 부동 소수점 계산에 이슈가 생긴다. 만약 이렇게 소수점 계산을 하고나서 같은지 체크를 하고 싶을 때가 있는데, 상식적으로 사람이 생각한 것과 다른 결과값이 나오기 때문에 저 문제를 해결하는 방법이 필요하다. 이럴 때 Number.EPSILON 을 ... JavaScript타입과문법JavaScript 2.3.3 안전한 정수 범위 정수는 Number.MAX_VALUE보다 훨씬 작은 수준에서 '안전'값의 범위가 정해져 있다. 약 9천조 정도 되는 숫자인데 이거보다 더 큰 값을 다뤄야 하는 경우라면 와 같은 라이브러리를 사용하는 것이 좋다.... JavaScript타입과문법JavaScript 2.3.4 정수인지 확인 ES6부터는 Number.isInteger()로 어떤 값의 정수 여부를 판단 가능하다. ES6 이전 버전을 위한 폴리필 안전한 정수 여부는 ES6부터 Number.isSafeInteger()로 체크한다. ES6 이전 버전을 위한 폴리필... JavaScript타입과문법JavaScript 2.3.5 비트(부호 있는) 정수 정수의 '안전 범위'가 약 9천조 정도지만, 32비트 숫자만 가능한 연산이 있어서 실제 범위는 훨씬 작다. 32비트를 고려한 범위는 Math.pow(-2,31) (약 -21억)에 Math.pow(2,31)-1 (약 +21억)까지다. 아래와 같이 비트 연산자로 체크할 수도 있다. 이런식으로 쓰면 '숫자 값 -> 32비트 부호 있는 정수'로 강제변환을 한다. | 비트 연산자는 32비트 정수 값에... JavaScript타입과문법JavaScript 2.4.1 값 아닌 값 undefined 타입의 값은 undefined밖에 없고 null 타입의 값은 null뿐이다. 이 둘은 타입과 값이 항상 같다. 결론 undefined와 null은 빈 값과 값 아닌 값을 나타냄 null은 식별자가 아니라 뭔가를 할당할 수 없지만 undefined는 뭔가를 할당할 수 있어서 주의가 필요하다.!... JavaScript타입과문법JavaScript 2.4.2 undefined undefined의 할당 느슨한 모드에서는 전역 스코프에 undefined에 값을 할당할 수 있다.(절대 비추천) 그런데 황당한 것은 undefined라는 지역변수를 생성할 수 있다. 절대 이렇게 쓰지 말자. void 연산자 보이드 연산자는 어떤 값이든 무효로 만드는 특징이 있어서 값을 undefined로 만들어 버린다. 기존 값은 건드리지 않기 때문에 !(부정 연산자)를 쓰고 싶지 않을 때... JavaScript타입과문법JavaScript