본문 바로가기
javascript

length 값 반환 논리

by rami_ 2021. 9. 16.

var value = "ABC";

for (var k =0; k < value.length; k++){

 log(value[k]);

}; 

value 변수에는 "ABC"가 있고 length프로퍼티는 없다. 어떻게 value.length를 사용할 수 있을까?

"ABC"를 value 변수에 할당. 

Scope>Local의 value에 "ABC"설정됨. 한편 length프로퍼티가 없는데 3이 출력됨

var obj = new String("ABC");

Scope>Local의 obj에 length : 3이 있음. 이것은 value 변수와 obj가 같다는 뜻이기도 함.

obj나 value의 레벨이 같다는 뜻. value가 인스턴스가 된것. 그래야 length프로퍼티의 값을 구할 수 있음.

value를 처음 만나게 되면 value의 변수가 뭐인지 판단. String인지 Number인지. 여기서는 String.

value.length를 만나면 (value는 String타입) JS 내부에서 new String("ABC")(새로운 인스턴스)를 만들게 됨. 그러면 밑에 length 프로퍼티가 만들어짐. obj가 value에 해당함.(4:58)

'javascript' 카테고리의 다른 글

함수호출구조(?)  (0) 2021.09.23
length 값 반환 논리  (0) 2021.09.23
String length  (0) 2021.09.16
String 오브젝트  (0) 2021.09.14
Number 오브젝트 인스턴스 생성방법/목적, new연산자  (0) 2021.09.13