• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

length 값 변환 논리에 대한 질문입니다.

22.04.02 23:08 작성 조회수 99

0

var value = "ABC"

 

라는 변수를 선언해줬다고 했을 때 자바스크립트의 매커니즘은 그 값의 데이터 종류에 따라 자료형을 지정해준다고 이해를 했습니다.

 

즉 내부적으로 new String()이라는 값 할당이 이루어진 것이라고요.

그럼 1. var value = "ABC"라는 선언과

2. var value = new String("ABC")라는 선언의 차이는

변수의 value값을 사용할 때

1 = console.log(value);

2 = console.log(value valueOf());

 

(2번의 value는 [[]]형태 즉 프리미티브 값으로 저장되어 있기 때문)

의 방식으로 사용해야 한다는 차이가 있다고 이해를 했는데 맞게 이해한건가요?

답변 1

답변을 작성해보세요.

0

전체 개념은 맞습니다만, 조금 더 정리하면;

var value = new String("ABC")에서 인스턴스를 반환하므로 value.valueOf()로 "ABC"를 구합니다.

생성하는 인스턴스(value)의 내부 프로퍼티인 [[PrimitiveValue]]에 "ABC"가 설정되며, 이 값은 valueOf()로 구합니다.

lh0156님의 프로필

lh0156

질문자

2022.04.02

 와 감사합니다.... 강의를 듣는것 만으로 정말 말로만 듣던 "본질에 충실한 개발자"가 되어가는 기분입니다. 탐구란 이렇게 해야하는 것이구나 하고 많이 깨닫기도 하구요.

 

 "시니어 개발자가 되기 위해선 미쳐야한다"는 인터뷰에서도 많은 영감을 얻었습니다. 시니어가 되기 위해 미친 사람처럼 정진하겠습니다. 감사합니다 선생님!

마인드가 멋 있으세요. 응원합니다^^