Notice
Recent Posts
Recent Comments
Link
투케이2K
378. (javaScript) [에러 정리] 자바스크립트 RangeError: invalid array length 에러 정리 본문
JavaScript
378. (javaScript) [에러 정리] 자바스크립트 RangeError: invalid array length 에러 정리
투케이2K 2025. 3. 18. 20:00[개발 환경 설정]
개발 툴 : Edit++
개발 언어 : JavaScript
[설명 정리]
-----------------------------------------------------------------------------------------
[사전 설명 및 설정 사항]
-----------------------------------------------------------------------------------------
- 개발 환경 : Web
- 개발 기술 : JavaScript (자바스크립트) / Exception / RangeError
-----------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------
[설명 정리]
-----------------------------------------------------------------------------------------
1. RangeError 는 2^32와 같거나 이보다 긴, 혹은 음수의 길이를 가진 Array 나 ArrayBuffer 를 생성했을 때 발생하는 에러입니다
2. Array 와 ArrayBuffer 의 길이에 제한을 둔 이유는, Array 나 ArrayBuffer 의 length 속성은 사인되지 않은(unsigned) 32 비트 정수로 반영됩니다
>> 즉 Array 나 ArrayBuffer 는 오직 0 ~ 2^32-1 사이의 값만을 저장할 수 있습니다
3. RangeError: invalid array length 발생 예시 코드 :
new Array(Math.pow(2, 40)); // 2^32 이상
new Array(-1); // 음수
new ArrayBuffer(Math.pow(2, 32)); // 2^32 이상
new ArrayBuffer(-1); // 음수
let a = [];
a.length = a.length - 1; // 음수
let b = new Array(Math.pow(2, 32) - 1);
b.length = b.length + 1; // 2^32 이상
4. RangeError 없이 올바르게 배열을 관리 하려면 Array 및 ArrayBuffer 생성 시 0 ~ 2^32-1 사이즈 만큼 크기 지정 후
데이터 저장 시 해당 크기를 초과하는 경우 추가 배열 생성 및 사이즈 초과 에러 팝업창 표시 방어 로직이 필요합니다
-----------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------
[참고 사이트]
-----------------------------------------------------------------------------------------
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Errors/Invalid_array_length
-----------------------------------------------------------------------------------------
반응형
'JavaScript' 카테고리의 다른 글
Comments