-
[JS] .length는 함수가 아니라 프로퍼티이다.Javascript/이론 2022. 12. 28. 16:03반응형
자바스크립트에서 모든 데이터 구조는 객체를 기본 바탕으로 한다. 이는 "내장 객체의 프로토타입을" 검색해 보면 알 수 있는데 다시볼 때 검색하기 귀찮을 게 뻔하니 링크를 남겨놔야겠다.
결국 핵심은 Array, String, Number 등등 모든 자료형은 prototype을 가지며 이는 자료형.prototype으로 표현되는데, 만약 내가 String이나 Object, Array 등의 자료형을 생성한다면 생성한 객체는 [[Prototype]] 으로 자료형.prototype을 상속받는다. 물론 모든 데이터 구조는 객체를 기본으로 하니 계속해서 [[Prototype]]을 타고 올라가다보면 Object.prototype이 나온다.
아무튼, js에서 모든 데이터 구조는 객체를 기반으로 하는데 이 중 iteration 가능한 객체들이 있다. 해당 객체들은 기본적으로 length 프로퍼티를 가지고 있기 때문에 .length의 시간 복잡도는 O(1)이다!! 왜 이걸 쓰냐고?? 당연히 O(n)일거라 생각하고 요리조리 정리하려고 노력하다 시간복잡도 죽쑨걸 깨달았기 때문이다.
반응형'Javascript > 이론' 카테고리의 다른 글
[ JS ] rotate3d 값 얻기 (0) 2023.02.08 [ JS ] Date 객체와 메서드 (0) 2023.01.01 [ JS ] 표준 입력 - process.stdin (0) 2022.12.29 [JS] 정규 표현식의 패턴과 플래그 (0) 2022.12.21 [JS] 비트 연산자 - "&", "|", "^", "~", "<<", ">>", ">>>" (0) 2022.12.14