이제 객체를 원시값으로 변환하는 구현 방법을 알려드리겠습니다. 이제 그것을 여러분과 공유하고 모든 사람에게 참고 자료로 제공하겠습니다.
먼저 원시 값의 개념을 이해해야 합니다
기본 값
은 스택에 저장된 간단한 데이터 세그먼트입니다. 즉, 해당 값은 스택에 직접 저장됩니다. 변수에 액세스됩니다.
참조값
힙에 저장된 객체, 즉 변수에 저장된 값은 객체가 저장된 메모리를 가리키는 포인터(점)
————참조 이해 w3c의 개념
원래 값, 간단한 이해는 null 정의되지 않은 문자열 숫자 Boolean 이러한
객체를 부울로 변환하는 것은 비교적 간단합니다
모든 객체(배열 및 함수 포함)가 true로 변환되고 패키징 객체는 Object에서도 true로 변환됩니다
책에는 이렇게 나와 있습니다. "문자열, 숫자 및 부울 값의 속성에 액세스할 때 생성되는 임시 객체를 패키징 객체라고 합니다." 제가 이해하는 방식은 문자열입니다. new에 의해 생성된 숫자 및 부울은 모두 패키징 개체로 간주되지만 개체와는 다르지만 실제로는 개체입니다. 주요 차이점은 문자열 숫자 부울의 속성이 읽기 전용이기 때문에 패키징 개체에 대해 새 속성을 정의할 수 없다는 것입니다. .
객체를 문자열 형식으로 변환
객체에 toString() 메서드가 있으면 toString() 메서드를 호출합니다. 기본 값이 반환되면 기본 값을 문자열로 변환하고 개체는 이 문자열은 toString() 메서드가 없거나 이 메서드에서 반환된 값이 기본 값이 아닌 경우 valueOf() 메서드를 호출합니다. 동일한 방식으로 기본 값이 반환되면 기본 값을 변환합니다. 문자열이면 객체가 문자열로 변환됩니다. 반환된 값이 기본 값이 아닌 경우 유형 변환 오류가 발생합니다.
여기서 toString() 메소드와 valueOf() 메소드는 문자열로 변환하는 과정에 비해
객체는 숫자 유형
으로 변환됩니다. 먼저 valueOf() 메서드를 호출한 다음 toString() 메서드를 호출합니다. 마지막으로 toString() 메서드가 원래 값을 반환하지 않으면 js에서 오류가 발생합니다.
"==" 및 "+" 연산자를 사용하여 수치 계산이나 문자열 연결을 수행할 때 연산자의 한쪽이 객체인 경우 객체를 원시 값으로 변환하는 특별한 방법이 사용됩니다. 날짜가 아닌 객체의 경우 먼저 valueOf() 메서드를 호출한 후 tostring() 메서드를 호출하여 객체를 기본 값으로 변환하고, 이 두 메서드를 호출하여 얻은 원래 값을 변환된 원래 값으로 직접 사용합니다. 날짜 객체의 경우 먼저 toString() 메서드를 호출한 다음 valueOf 메서드를 호출합니다.
날짜 객체를 기본 값으로 변환하는 경우 예를 들어보겠습니다.
var now=new Date(); typeOf(now+1); //"string" 将日期对象转换成了字符串,因为先调用的是toString()方法 typeOf(now-1); //"number" 体现了js的灵活性,"-"将字符串转换线成了number
위 내용은 제가 모든 사람을 위해 정리한 내용입니다. 앞으로 모든 사람에게 도움이 되기를 바랍니다.
관련 기사:
JavaScript의 5가지 공통 함수에 대한 자세한 설명JavaScript 코드 최적화에 대한 자세한 설명JavaScript 호출 및 적용위 내용은 객체를 기본 값으로 변환하는 구현 방법(그래픽 튜토리얼)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!