11장 원시 값과 객체의 비교에서 봤듯이 String 래퍼 객체는 배열과 마찬가지로 length 프로퍼티와 인덱스를 나타내는 숫자 형식의 문자열을 프로퍼티 키로, 각 문자를 프로퍼티 값으로 갖는 유사 객체이면서 이터러블이다. 따라서 배열과 유사하게 인덱스를 사용하여 각 문자에 접근할 수 있다.
단, 문자열은 원시값이므로 인덱스로 접근해 변경할 수 없다.
Number.EPSILON
ES6에서 도입된 Number.EPSILON은 1과 1보다 큰 숫자 중에서 가장 작은 숫자와의 차이와 같다. 이는 부동소수점으로 인해 발생하는 오차를 해결하기 위해 사용한다.
Number.EPSILON은 부동소수점으로 인해 발생하는 오차를 해결하기 위해 사용한다. 다음 예제는 Number.EPSILON을 사용하여 부동소수점을 비교하는 함수다.
function isEqual(a, b) {
// a와 b를 뺀 값의 절대값이 Number.EPSILON보다 작으면 같은 수로 인정한다.
return Math.abs(a - b) < Number.EPSILON;
}
isEqual(0.1 + 0.2, 0.3); // → true
Number.MAX_VALUE, Number.MIN_VALUE : 표현 가능 최대, 최솟값
Number.MAX_SAFE_INTEGER, MIN_SAFE_INTEGER : 안전하게 표현할 수 있는 가장 작은 정수값