>  기사  >  웹 프론트엔드  >  JavaScript 메소드 toString()은 Date 객체를 문자열로 변환하고 결과를 반환합니다.

JavaScript 메소드 toString()은 Date 객체를 문자열로 변환하고 결과를 반환합니다.

黄舟
黄舟원래의
2017-11-08 11:22:064625검색

정의 및 사용법

toString() 메소드는 Date 객체를 string으로 변환하고 결과를 반환할 수 있습니다.

Syntax

dateObject.toString()

반환 값

현지 시간으로 표현된 dateObject의 문자열 표현입니다.

예제

이 예에서는 오늘 날짜를 문자열로 변환합니다:

<script type="text/javascript">

var d = new Date()
document.write (d.toString())

</script>

출력:

Wed Nov 08 2017 11:20:25 GMT+0800 (中国标准时间)

toString()을 사용하여 오늘 날짜를 문자열로 변환하는 방법.




<script type="text/javascript">

var d = new Date()
document.write (d.toString())

</script>


결과:

Wed Nov 08 2017 11:21:32 GMT+0800 (中国标准时间)

JavaScript의 toString() 메서드
toString() 메서드는 논리값을 문자열로 변환하고 결과를 반환할 수 있습니다.
사용법 booleanObject.toString(), 반환 값은 원래 부울 값 또는 booleanObject 개체의 값을 기반으로 "true" 또는 "false" 문자열을 반환합니다. 이 메소드가 호출되는 객체가 부울이 아닌 경우 TypeError 예외가 발생합니다. 이 메서드는 문자열 환경에서 Boolean 객체를 사용할 때 자동으로 호출됩니다.
다음 스크립트는 부울 객체를 생성하고 이를 문자열로 변환합니다.

<script type="text/javascript"> 
var boo = new Boolean(true); 
document.write(boo.toString()); 
</script>

스크립트 출력:

true。

먼저 예제를 살펴보겠습니다.

var aaa = { 
i: 10, 
valueOf: function() { return this.i+30; }, 
toString: function() { return this.valueOf()+10; } 
} 
alert(aaa > 20); // true 
alert(+aaa); // 40 
alert(aaa); // 50

그런 결과가 나오는 이유는 그들이 비밀리에 valueOf 또는 toString 메소드. 그런데 어떤 상황에서 어떤 메서드가 호출되는지 어떻게 구별할 수 있나요? 다른 메서드를 통해 테스트해 볼 수 있을까요? console.log를 사용하므로 Firebug가 설치된 FF에서 실험해 보세요!

var bbb = { 
i: 10, 
toString: function() { 
console.log(&#39;toString&#39;); 
return this.i; 
}, 
valueOf: function() { 
console.log(&#39;valueOf&#39;); 
return this.i; 
} 
} 
alert(bbb);// 10 toString 
alert(+bbb); // 10 valueOf 
alert(&#39;&#39;+bbb); // 10 valueOf 
alert(String(bbb)); // 10 toString 
alert(Number(bbb)); // 10 valueOf 
alert(bbb == &#39;10&#39;); // true valueOf 
alert(bbb === &#39;10&#39;); // false

얼핏 결과는 문자열로 변환할 때 toString 메소드, 수치로 변환할 때 valueOf 메소드가 호출되는 것처럼 보이지만 둘은 매우 불일치합니다. 하나는 Alert(''+bbb)이고, 문자열 연결은 toString 메소드를 호출해야 하는데... 다른 하나는 ===

operator가 암시적 변환을 수행하지 않으므로 호출되지 않는 것으로 일시적으로 이해될 수 있습니다. 진실을 밝히기 위해서는 좀 더 엄격한 실험이 필요합니다.

var aa = { 
i: 10, 
toString: function() { 
console.log(&#39;toString&#39;); 
return this.i; 
} 
} 
alert(aa);// 10 toString 
alert(+aa); // 10 toString 
alert(&#39;&#39;+aa); // 10 toString 
alert(String(aa)); // 10 toString 
alert(Number(aa)); // 10 toString 
alert(aa == &#39;10&#39;); // true toString 
再看valueOf。 
var bb = { 
i: 10, 
valueOf: function() { 
console.log(&#39;valueOf&#39;); 
return this.i; 
} 
} 
alert(bb);// [object Object] 
alert(+bb); // 10 valueOf 
alert(&#39;&#39;+bb); // 10 valueOf 
alert(String(bb)); // [object Object] 
alert(Number(bb)); // 10 valueOf 
alert(bb == &#39;10&#39;); // true valueOf 
发现有点不同吧?!它没有像上面toString那样统一规整。对于那个[object Object],我估计是从Object那里继承过来的,我们再去掉它看看。 
Object.prototype.toString = null; 
var cc = { 
i: 10, 
valueOf: function() { 
console.log(&#39;valueOf&#39;); 
return this.i; 
} 
} 
alert(cc);// 10 valueOf 
alert(+cc); // 10 valueOf 
alert(&#39;&#39;+cc); // 10 valueOf 
alert(String(cc)); // 10 valueOf 
alert(Number(cc)); // 10 valueOf 
alert(cc == &#39;10&#39;); // true valueOf

toString만 다시 작성하면 valueOf의 존재 여부에 관계없이 객체가 변환됩니다. 그러나 valueOf 메서드만 재정의된 경우 문자열로 변환할 때 valueOf 메서드에 우선 순위가 부여됩니다. toString을 호출할 수 없으면 valueOf만 사용할 수 있습니다. 이상한 문자열 접합 문제에 대해서는 연산자 때문일 수 있습니다. ECMA262-5를 열어보니 getValue 작업이 있는 것으로 나타났습니다. 그렇다면 미스터리는 해결되어야 할 것이다. 다시 작성하면 호출의 최적화가 향상되며 운영자의 경우 valueOf의

우선순위는 본질적으로 toString의 우선순위보다 높습니다.

위 내용은 JavaScript 메소드 toString()은 Date 객체를 문자열로 변환하고 결과를 반환합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.