정의 및 사용법
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('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 메소드가 호출되는 것처럼 보이지만 둘은 매우 불일치합니다. 하나는 Alert(''+bbb)이고, 문자열 연결은 toString 메소드를 호출해야 하는데... 다른 하나는 ===
operator가 암시적 변환을 수행하지 않으므로 호출되지 않는 것으로 일시적으로 이해될 수 있습니다. 진실을 밝히기 위해서는 좀 더 엄격한 실험이 필요합니다.
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(Number(aa)); // 10 toString alert(aa == '10'); // true toString 再看valueOf。 var bb = { i: 10, valueOf: function() { console.log('valueOf'); return this.i; } } alert(bb);// [object Object] alert(+bb); // 10 valueOf alert(''+bb); // 10 valueOf alert(String(bb)); // [object Object] alert(Number(bb)); // 10 valueOf alert(bb == '10'); // true valueOf 发现有点不同吧?!它没有像上面toString那样统一规整。对于那个[object 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 valueOftoString만 다시 작성하면 valueOf의 존재 여부에 관계없이 객체가 변환됩니다. 그러나 valueOf 메서드만 재정의된 경우 문자열로 변환할 때 valueOf 메서드에 우선 순위가 부여됩니다. toString을 호출할 수 없으면 valueOf만 사용할 수 있습니다. 이상한 문자열 접합 문제에 대해서는 연산자 때문일 수 있습니다. ECMA262-5를 열어보니 getValue 작업이 있는 것으로 나타났습니다. 그렇다면 미스터리는 해결되어야 할 것이다. 다시 작성하면 호출의 최적화가 향상되며 운영자의 경우 valueOf의
우선순위는 본질적으로 toString의 우선순위보다 높습니다.
위 내용은 JavaScript 메소드 toString()은 Date 객체를 문자열로 변환하고 결과를 반환합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!