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)일거라 생각하고 요리조리 정리하려고 노력하다 시간복잡도 죽쑨걸 깨달았기 때문이다.

반응형