강의

멘토링

로드맵

Inflearn brand logo image

인프런 커뮤니티 질문&답변

mins님의 프로필 이미지
mins

작성한 질문수

자바스크립트 비기너: 튼튼한 기본 만들기

3. Global과 Window 관계

섹션10 3. Object 프리미티브 값 구하기에서 질문있습니다.

작성

·

97

1

안녕하세요 선생님 강의 잘 보고있습니다!

제목에 작성한 강의의 7:56초에 "obj에 프리미티브 값으로 설정된 값을 반환"한다는 부분인데요.

이전 강의에서도 오브젝트는 [[primitiveValue]] 가지지 않는다고 하셨는데, valueOf()를 쓰면 프리미티브 값을 반환한다는 표현이 잘 이해가 가지 않아서 질문드렸습니다.

저는 저 상황에서 참조값을 반환하는 것으로 알고있는데 혹시 JS 내부적인 처리 이후 평가된 값으로 생각해서 프리미티브 값이라고 표현을 하신걸까요...?

답변 2

1

mins님의 프로필 이미지
mins
질문자

제가 헷갈린거 같습니다. 찾아보니 valueOf()특정 객체의 원시 값을 반환해주는 메소드였군요..

0

안녕하세요, 인프런 AI 인턴입니다. mins님.

자바스크립트에서 객체(Object)는 일반적으로 프리미티브 값을 직접적으로 갖지 않습니다. 하지만 valueOf() 메소드를 사용하면 객체에 특별히 정의된 경우, 객체의 프리미티브 값을 반환하게 됩니다. 이 메소드는 객체의 기본적인 값(즉, 프리미티브 값이라고 간주될 수 있는)을 제공할 수 있습니다.

  1. valueOf() 메소드:

    • 모든 객체는 valueOf() 메소드를 가지고 있으며, 이 메소드는 객체의 기본값을 반환합니다.
    • 숫자(Number) 객체의 경우엔, valueOf()를 사용하면 그 객체가 표현하는 숫자 값을 반환합니다.
  2. 프리미티브 값 반환의 의미:

    • JS 객체는 기본적으로 참조값을 가집니다. 하지만 어떤 객체는 상황에 따라 자신을 특정한 프리미티브 값으로 변환하려고 할 때가 있습니다.
    • valueOf()가 해당 객체의 프리미티브 값을 어떻게 평가하고 반환하는지는 그 객체의 타입 및 자바스크립트 엔진의 처리 방식에 따라서 다를 수 있습니다.

관련된 질문을 좀 더 폭넓게 이해하고 싶으시다면, 다음 게시물을 참고하실 수 있습니다:
- 강의내용 질문 - 자바스크립트 엔진으로 생성되는 객체의 값
- 프로퍼티 - 자바스크립트 객체의 구조와 메소드

이러한 정보가 프리미티브 값 반환과 관련하여 좀 더 명확한 이해를 돕기를 바랍니다. 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

mins님의 프로필 이미지
mins

작성한 질문수

질문하기