Javascript/이론
[JS] .length는 함수가 아니라 프로퍼티이다.
OnnJE
2022. 12. 28. 16:03
반응형
자바스크립트에서 모든 데이터 구조는 객체를 기본 바탕으로 한다. 이는 "내장 객체의 프로토타입을" 검색해 보면 알 수 있는데 다시볼 때 검색하기 귀찮을 게 뻔하니 링크를 남겨놔야겠다.
내장 객체의 프로토타입
ko.javascript.info
결국 핵심은 Array, String, Number 등등 모든 자료형은 prototype을 가지며 이는 자료형.prototype으로 표현되는데, 만약 내가 String이나 Object, Array 등의 자료형을 생성한다면 생성한 객체는 [[Prototype]] 으로 자료형.prototype을 상속받는다. 물론 모든 데이터 구조는 객체를 기본으로 하니 계속해서 [[Prototype]]을 타고 올라가다보면 Object.prototype이 나온다.
아무튼, js에서 모든 데이터 구조는 객체를 기반으로 하는데 이 중 iteration 가능한 객체들이 있다. 해당 객체들은 기본적으로 length 프로퍼티를 가지고 있기 때문에 .length의 시간 복잡도는 O(1)이다!! 왜 이걸 쓰냐고?? 당연히 O(n)일거라 생각하고 요리조리 정리하려고 노력하다 시간복잡도 죽쑨걸 깨달았기 때문이다.
반응형