valueOf 함수 설명

3070 단어
유형 전환에서 자주 사용하는 방법valueOf()toString(), 모든 대상(기본 포장 유형 포함)은 이 두 가지 방법을 가지고 있다.이 글은 우리가 먼저 valueOf() 방법을 봅시다.valueOf() 메서드는 객체를 기본 유형으로 변환하고 기본 유형으로 변환할 수 없으면 원래 객체로 반환합니다.
【1】 기본 포장 유형-Boolean형
   var obj = new Boolean(true);
   console.log(obj.valueOf());//true
   console.log(typeof obj.valueOf());//boolean
   // , 
    var a = true;
   console.log(a.valueOf());//true
   console.log(typeof a.valueOf());//boolean

기본 포장 유형에 대응하는 기본 유형이라면 원값을 되돌려줍니다.그러나 이것은 기본 유형 보유valueOf() 방법(기본 유형은 대상이 아니라 어떤 방법도 가지지 않음)을 대표하는 것이 아니라 하나의 기본 유형 값을 읽을 때 백엔드에서 대응하는 기본 포장 유형의 대상을 만들어 일부 방법을 호출하는 것이다.따라서 기본 유형'호출'valueOf() 방법은 실제적으로 대응하는 기본 포장 유형을 먼저 만들었기 때문에 기본 포장 유형 호출valueOf()은 마지막에 대응하는 기본 유형을 되돌려주었다. 보기에 마치 기본 유형 호출valueOf() 방법으로 원시 값을 얻은 것 같다.
【2】 기본 포장 유형 - 스트링형
   var obj = new String("hello");
   console.log(obj.valueOf());//hello
   console.log(typeof obj.valueOf());//string
   // , 
   var a = "hello";
   console.log(a.valueOf());//hello
   console.log(typeof a.valueOf());//string

[1]과 같이 String 기본 포장 유형과 기본 유형 호출value Of() 방법은 대응하는 기본 유형을 되돌려줍니다
【3】 기본 포장 유형 - 넘버형
   var obj = new Number("123");
   console.log(obj.valueOf());//123
   console.log(typeof obj.valueOf());//number
   // , 
    var a = 123;
   console.log(a.valueOf());//123
   console.log(typeof a.valueOf());//number

[1]과 같이 Number 기본 포장 유형과 기본 유형 호출valueOf() 방법은 대응하는 기본 유형을 되돌려줍니다.정수로 직접 호출할 때는 괄호를 붙여야 하며, 그렇지 않으면 오류가 발생할 수 있으니 주의하십시오.정수 뒤의 점은 소수점으로 인식되기 때문이다.부동점형은 틀리지 않는다.
   console.log(123.valueOf());//Uncaught SyntaxError
   console.log((123).valueOf());//123
   console.log(12.3.valueOf());//12.3

[4] 배열 Array 유형 (원래 배열로 돌아가기)
   var a = [1];
   console.log(a.valueOf());//[1]
   console.log(a === a.valueOf());//true

【5】 함수 Function 유형(원래 함수로 반환)
   var a = function(){};
   console.log(a.valueOf());//function(){};
   console.log(a === a.valueOf());//true

【6】 정규 RegExp 유형(원래 정규 객체로 돌아가기)
   var a = /a/g;
   console.log(a.valueOf());///a/g
   console.log(a === a.valueOf());//true

[7] 객체 Object 유형
   var obj = {a:1};
   console.log(obj.valueOf());//Object{a:1}
   console.log(obj === obj.valueOf());//true

[8] Date 유형 (현재 시간을 나타내는 수치를 반환함)
   var obj = new Date();
   console.log(obj);//Wed May 10 2017 12:19:05 GMT+0800 ( )
   console.log(obj.valueOf());//1494389910179
   console.log(obj === obj.valueOf());//false
   console.log(obj.getTime() === obj.valueOf());//true

요약:
  • undefined와null에는 이 방법이 없습니다(기본 유형에는 방법이 없을 것입니다.String,Number와Boolean은 대응하는 기본 포장 유형이 있기 때문에 호출할 수 있습니다).
  • 기본 포장 유형과 대응하는 기본 유형,valueOf()를 호출하여 대응하는 기본 유형 값을 되돌려줍니다.
  • 객체 유형(Date 유형 제외)이 원래 객체로 반환됩니다.
  • Date 유형은 날짜를 나타내는 밀리초
  • 를 반환합니다.
    이 블로거의 문장을 참고하다

    좋은 웹페이지 즐겨찾기