Javascript_javascript 기술에서 valueOf와 toString의 차이점에 대한 간략한 분석
머리말
기본적으로 모든 JS 데이터 유형에는 null을 제외한 이 두 가지 메소드가 있습니다. 둘 다 JavaScript 값 계산 및 표시 문제를 해결하고 다시 작성하면 호출 최적화가 향상됩니다.
테스트 분석
먼저 예시를 살펴보겠습니다.
var aaa = {
i: 10,
valueOf: function() { return this.i 30 },
toString: function() { return this.valueOf() }
}
alert(aaa > 20); // true
alert( aaa); // 40
alert(aaa) // 50
이 결과가 나온 이유 왜냐하면 그들은 비밀리에 valueOf 또는 toString 메소드를 호출하기 때문입니다.
그런데 어떤 상황에서 어떤 메서드가 호출되는지 어떻게 구별할 수 있나요? 다른 메서드를 통해 테스트해 볼 수 있습니다.
console.log를 사용하므로, Firebug가 설치된 FF에서 실험해 보세요!
var bbb = {
i: 10,
toString: function() {
console.log('toString');
return this.i;
},
valueOf: function() {
console. log(' valueOf');
return this.i;
}
}
alert(bbb); // 10 toString
alert( bbb); // 10 valueOf
alert('' bbb) // 10 valueOf
alert(String(bbb)); / 10 toString
alert(Number(bbb)); // 10 valueOf
alert(bbb == '10') // true valueOf
alert(bbb === '10'); /false
결과를 보면 문자열로 변환할 때는 toString 메소드, 수치로 변환할 때는 valueOf 메소드를 호출한 듯한 느낌을 주는데 둘은 매우 불일치합니다. 하나는 경고('' bbb)이고, 문자열 연결은 toString 메소드를 호출해야 합니다. 우리가 일시적으로 이해할 수 있는 다른 하나는 === 연산자가 암시적 변환을 수행하지 않으므로 호출되지 않는다는 것입니다. 진실을 밝히기 위해서는 좀 더 엄격한 실험이 필요합니다.
var aa = {
i: 10,
toString: function() {
console.log('toString');
return this.i
}
}
alert(aa);// 10 toString
alert( aa); // 10 toString
alert('' aa); // 10 toString
alert(String(aa)) // 10 toString
alert(Aa )); // 10 toString
alert(aa == '10'); // true toString
valueOf를 다시 살펴보세요.
var bb = {
i: 10,
valueOf: function() {
console.log('valueOf')
return this.i
}
}
alert(bb);// [객체 객체]
alert(bb); // 10 valueOf
alert('' bb) // 10 valueOf
alert(String(bb)) ; // [객체 객체]
alert(Number(bb)); // 10 valueOf
alert(bb == '10') // true valueOf
다르죠? ! 위의 toString만큼 통일되고 규칙적이지는 않습니다.
그 [객체 Object]는 Object에서 상속된 것 같습니다. 제거하고 살펴보겠습니다.
Object.prototype.toString = null
var cc = {
i: 10,
valueOf: function() {
console.log('valueOf')
return this.i;
alert(cc); // 10 valueOf
alert( cc); // 10 valueOf
alert('' cc) // 10 valueOf
alert(String(cc) ); // 10 valueOf
alert(Number(cc)); // 10 valueOf
alert(cc == '10'); // true valueOf
요약: 이는 작업에 편향되어 있고 toString은 표시에 편향되어 있습니다.
2. 강제로 문자열 형식으로 변환하는 경우 toString 메서드가 먼저 호출되고, 강제로 숫자로 변환하는 경우 valueOf 메서드가 먼저 호출됩니다.
3. 연산 연산자가 있는 경우 valueOf가 toString보다 우선순위가 높습니다.

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제









Java의 String.valueOf() 함수를 사용하여 기본 데이터 유형을 문자열로 변환 Java 개발에서 기본 데이터 유형을 문자열로 변환해야 할 때 일반적인 방법은 String 클래스의 valueOf() 함수를 사용하는 것입니다. 이 함수는 기본 데이터 유형의 매개변수를 허용하고 해당 문자열 표현을 반환할 수 있습니다. 이 기사에서는 기본 데이터 유형 변환을 위해 String.valueOf() 함수를 사용하는 방법을 살펴보고 다음과 같은 몇 가지 코드 예제를 제공합니다.

Java의 Boolean.valueOf() 함수를 사용하여 문자열을 부울 값으로 변환합니다. Java 프로그래밍에서는 문자열을 부울 값으로 변환해야 하는 상황이 자주 발생합니다. Java는 Boolean.valueOf() 함수를 사용하여 이러한 요구 사항을 충족하는 편리한 방법을 제공합니다. 이 함수는 문자열로 표현된 부울 값을 해당 부울 유형으로 변환할 수 있습니다. Boolean.valueOf()의 사용법을 자세히 살펴보겠습니다. 문자열이 주어지면, 우리는

1. 문자열을 통해 단일 열거 객체를 얻는 개념입니다. 세 가지 구문 형식이 있습니다. 2. 매개변수 i는 Integer 객체의 정수입니다. s, Integer 객체의 문자열입니다. 문자열 s를 구문 분석할 때 사용되는 기본 번호인 기수는 사용되는 기본 번호를 지정하는 데 사용됩니다. 3. 반환 값은 문자열 매개변수로 표시되는 정수 개체 예외입니다. 문자열을 구문 분석할 수 없으면 NumberFormatException 예외가 발생합니다. 4. 인스턴스 publicenumSignal{//열거 유형 GREEN, YELLOW, RED; ]args ){Signalgreen=시그

StringBuffer 클래스의 toString() 메소드를 사용하여 StringBuffer를 문자열로 변환합니다. Java에서 StringBuffer 클래스는 문자열을 수정하고 조작하는 데 사용되는 클래스입니다. StringBuffer 객체를 문자열로 변환해야 하는 경우 toString() 메서드를 사용하여 이를 달성할 수 있습니다. StringBuffer 클래스의 toString() 메서드는

Java의 String.valueOf() 함수를 사용하여 문자 배열을 문자열로 변환 Java 프로그래밍에서는 문자 배열을 문자열로 변환해야 하는 경우가 많습니다. 다행스럽게도 Java에서는 이 기능을 수행하기 위한 편리한 메서드 String.valueOf()를 제공합니다. 이 글에서는 String.valueOf() 함수를 사용하여 문자 배열을 문자열로 변환하는 방법을 설명하고 해당 코드 예제를 제공합니다. String.valueOf() 함수는

Java의 String.valueOf() 함수를 사용하여 다른 유형을 문자열로 변환합니다. Java 개발에서는 다른 데이터 유형을 문자열로 변환해야 하는 경우가 종종 있습니다. 이러한 요구를 충족하기 위해 Java는 유형 변환을 구현하는 String.valueOf() 함수를 제공합니다. 이 문서에서는 String.valueOf() 함수를 사용하여 다른 유형을 문자열로 변환하는 방법을 설명하고 코드 예제를 제공합니다. 기본 데이터 유형을 문자열로 변환 먼저 기본 데이터 유형을 문자열로 변환하는 방법을 살펴보겠습니다.

tostring 함수 publicstaticStringmyToString(int[]array){Stringstr="[";for(inti=0;i)의 구현을 시뮬레이션합니다.

1. 설명 함수 1은 문자열로 변환될 수 있습니다. 함수 2는 값을 다른 기본 숫자(8진수 등)의 문자열로 변환할 수 있습니다. 2. 구문 StringtoString() staticStringtoString(inti) 3. 매개변수 i - 정수 변환됩니다. 4. 반환 값 toString(): 정수 값을 나타내는 String 개체를 반환합니다. toString(inti): 지정된 int를 나타내는 String 객체를 반환합니다. 5. 예 importjava.util.Arrays; publicclassArrayPrint{publicstaticvoidmain(Str
