https://inflearn-quiz.vercel.app/javascript/4-number
실전 자바스크립트 퀴즈
문제 1 다음 코드에서 변수 v1에 저장되는 값은? undefined123NaNabc 문제 2 다음 코드에 대한 설명으로 옳은 것은? 'divide by zero' 에러가 발생한다v1은 0이 된다v1은 NaN이 된다v1은 무한대를 표현하는 값이
inflearn-quiz.vercel.app
1. 다음 코드에서 변수 v1에 저장되는 값은?
const v1 = Number.parseInt('abc123');
-> 숫자가 아닌 값에 연산을 수행하거나 0을 0으로 나누면 NaN이 출력된다.
ex) 0/0, 100 / 'hello'
2. 다음 코드에 대한 설명으로 옳은 것은?
const v1 = 1 / 0;
-> v1은 무한대를 표현하는 값이 된다.
자바스크립트는 0을 0으로 나누면 NaN가 되고, 숫자를 0으로 나누면 infinity가 된다.
3. 자바스크립트 number 타입에 대한 설명으로 틀린 것은?
(1) 정수, 실수 상관없이 항상 부동소수점 방식을 사용한다. - O
-> 자바스크립트는 항상 64bit의 부동소수점 방식을 사용해서 숫자를 표현한다.(참고 포스팅)
(2) 작은 정수도 64bit를 사용하므로 메모리 낭비가 발생한다. - O
-> 작은 정수도 64bit을 사용하기 때문에 낭비가 발생한다고 볼 수 있다.
(3) Number.MAX_SAFE_INTEGER는 표현할 수 있는 가장 큰 숫자를 의미한다. - X
-> 표현할 수 있는 가장 큰 숫자는 Number.MAX_VALUE이다.
Number.MAX_SAFE_INTEGER는 안전하게 표현할 수 있는 최대 숫자이다. (참고 포스팅)
(부동소수점 형식에서 숫자는 가수(mantissa)와 지수(exponent)의 곱으로 표현되는데,
가수에는 유한한 비트 수가 할당되므로, 가수가 표현할 수 있는 값의 범위가 제한된다.)
4. 다음 코드에 대한 설명으로 옳은 것은?
const v1 = Number.MAX_SAFE_INTEGER + 4;
const v2 = v1 - 10;
const v3 = Number.MAX_SAFE_INTEGER - 10;
(1) v1는 안전한 숫자이다.
-> 최대 안전 숫자에 +4를 했기 때문에 안전하지 않은 숫자이다.
(2) v2은 MAX_SAFE_INTEGER 보다 6 작은 값이 된다.
-> Number.MAX_SAFE_INTEGER를 넘어서 계산을 수행한 경우 안전하지 않은 정수 영역에서 작동하게 되어 정확한 연산이 보장되지 않는다.
(3) v3는 안전한 숫자이다.
-> 최대 안전 숫자 이하이기 때문에 안전한 숫자이다.
5. 다음 코드에 대한 설명으로 틀린 것은?
console.log(0.1 + 0.2 === 0.3);
(1) 콘솔 로그에는 false가 출력된다. - O
-> 부동소수점 연산의 반올림 오류로 인해 false를 출력한다.
(2) Number.EPSILON을 이용하면 (0.1 + 0.2)와 0.3이 비슷한 값이라는 것을 알 수 있다. - O
-> Math.abs(0.1 + 0.2 - 0.3) < Number.EPSILON // true
Number.EPSILON은 JavaScript에서 표현할 수 있는 가장 작은 양의 숫자이다.
두 값의 차이가 Number.EPSILON보다 작다면, 두 값은 충분히 가깝다고 간주할 수 있다.
(3) 위 코드는 자바스크립트 언어의 단점을 보여준다. - X
-> IEEE 754 표준에 따른 64비트 부동소수점 형식의 문제이기 때문에 자바스크립트의 단점이라고 보기는 어렵다.
6. 다음 코드에 대한 설명으로 틀린 것은?
const v1 = Math.random();
const v2 = Math.max(30, 10, 55);
const v3 = Math.pow(2, 3);
const v4 = Math.floor(17.94);
(1) v1은 무작위 정수가 된다. - X
-> 0이상 1 미만의 무작위 소수를 반환한다.
(2) v2는 55가 된다. - O
-> max() 안에 있는 값 중 가장 큰 값이기 때문에 55가 된다.
(3) v3는 8이 된다. - O
-> pow는 power의 약자로 2의 3승인 8이 된다.
(4) v4는 17이 된다. - O
-> floor는 소수점을 내림하여 17이 된다.
'Programming language > JavaScript' 카테고리의 다른 글
자바스크립트 퀴즈 - string 타입 (0) | 2023.03.22 |
---|---|
나머지 매개변수, Reduce함수, Referece 할당 (0) | 2023.03.20 |
자바스크립트 퀴즈 - 8가지 기본 타입 (0) | 2023.03.19 |
자바스크립트 퀴즈 - let, const (0) | 2023.03.16 |
자바스크립트 퀴즈 - var (0) | 2023.03.16 |