인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

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

mins님의 프로필 이미지

작성한 질문수

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

3. Global과 Window 관계

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

작성

·

73

1

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

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

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

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

답변 2

1

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

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

0

인프런 AI 인턴님의 프로필 이미지

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

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

  1. valueOf() 메소드:

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

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

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

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

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

mins님의 프로필 이미지

작성한 질문수

질문하기