https://poiemaweb.com/js-array-is-not-arrray
자바스크립트 배열은 해시 테이블로 구현된 객체이므로 인덱스로 배열 요소에 접근하는 경우, 일반적인 배열보다 성능적인 면에서 느릴 수 밖에 없는 구조적인 단점을 갖는다.
인덱스로 접근하면 왜 느린지 고졸 독학충 이해시켜줄사람
https://poiemaweb.com/js-array-is-not-arrray
자바스크립트 배열은 해시 테이블로 구현된 객체이므로 인덱스로 배열 요소에 접근하는 경우, 일반적인 배열보다 성능적인 면에서 느릴 수 밖에 없는 구조적인 단점을 갖는다.
인덱스로 접근하면 왜 느린지 고졸 독학충 이해시켜줄사람
일반적인 배열은 o(1)임
어레이 베이스랑 인덱스값만 알면 덧셈으로 목적지 주소를 바로계산해서 접근가능
해시테이블은 인덱스가지고 해시 구하고 링크드리스트를 접근해서 인덱스 맞는애 찾아서(해시충돌 가능성이 있으므로) 주소를 구함 훨씬 복잡하니까 느리지
근데 굳이 비교했을때 느린거지 해시테이블 존나빠른거임
그러니까 js는 배열이 object란 거임
자바스크립트 안써봤는데 ㄹㅇ 개병신이노
아무리 그래도 니애미보다 병신이겠노ㅋㅋㅋ
병신노근본언어쓰는 게이 왔노 ㅎㅇ
언어 깠다고 바로 풀발기 사정해버리노ㅋㅋㅋ
"자바스크립트 배열은 해시 테이블로 구현된 객체이므로" 이거 근거가 있는거냐? 스펙에는 일언반구 없는데
다른 언어에서의 배열은 순차적으로 데이터를 저장하고 포인터로 점프하면서 배열의 특정 위치를 사용하는데 저기에 있는 말대로라면 자바스크립트는 정수 인덱스든 문자열 인덱스든 어쨌든 해시값을 구하고 그 해시에 대한 원소를 '탐색'하니까 더 느릴 수 밖에 없지.
bucket 크기가 커서 1 depth에 모든 원소가 있다면 단순히 해시값을 구하는 부하만 요구되지만(물론 이것도 완전 쌩 배열 인덱스보다 느리지) 만약 depth가 깊어지면 노드 탐색 시간이 추가로 걸림
거기다 원래 배열은 연속된 공간이지만 해시테이블은 연속되게 저장되지 않을 수 있어서 캐시 효율도 떨어지고
배열 이라는 단어를 너무 광범위하게 쓰는것같은데