Dapat dikatakan bahwa semua tipe data JS memiliki dua metode: nilai dan tostring, kecuali null. Mereka berdua menyelesaikan masalah operasi dan tampilan nilai JavaScript. Ini sangat banyak digunakan dalam program. Mari kita perkenalkan kepada Anda satu per satu.
Metode JavaScript's ValueOf ()
Metode nilai () mengembalikan nilai asli dari objek boolean.
Penggunaan booleanobject.valueof (), mengembalikan nilai boolean asli dengan nilai booleanObject. Jika objek yang memanggil metode ini bukan boolean, tipeerror pengecualian dilemparkan.
<type script = "Text/JavaScript"> var boo = boolean baru (false); document.write (boo.valueof ()); </script>
Script di atas akan menghasilkan false.
Metode JavaScript ToString ()
Metode ToString () mengubah nilai logis menjadi string dan mengembalikan hasilnya.
Penggunaan booleanobject.tostring (), nilai pengembalian mengembalikan string "true" atau "false" berdasarkan nilai boolean asli atau nilai objek booleanObject. Jika objek yang memanggil metode ini bukan boolean, tipeerror pengecualian dilemparkan.
Metode ini secara otomatis dipanggil ketika objek Boolean digunakan dalam lingkungan string.
Script berikut akan membuat objek boolean dan mengubahnya menjadi string:
<script type = "text/javascript"> var boo = boolean baru (true); document.write (boo.toString ()); </cript>
Output skrip: Benar.
Mari kita lihat contoh:
var aaa = {i: 10, valueof: function () {return this.i+30; }, toString: function () {return this.valueof ()+10; }} peringatan (AAA> 20); // truealert (+aaa); // 40Alert (AAA); // 50Ini adalah hasilnya karena mereka secara diam -diam menyebut nilai atau metode tostring. Tetapi bagaimana membedakan dalam keadaan apa metode mana yang disebut? Kita dapat mengujinya melalui metode lain. Karena Console.log digunakan, silakan bereksperimen di FF dengan Firebug terpasang!
var bbb = {i: 10, tostring: function () {console.log ('toString'); return this.i;}, valueOf: function () {console.log ('valueOf'); return this.i;}} waspada (bbb); // 10 tostringalert (+bbb); // 10 valueOfalert (''+BBB); // 10 valueOfalert (string (bbb)); // 10 tostringalert (angka (bbb)); // 10 valueOfalert (bbb == '10'); // true valueOfalert (bbb === '10'); // PALSUPada pandangan pertama, hasilnya kira -kira perasaannya adalah bahwa jika dikonversi menjadi string, metode nilai dari metode, tetapi dua di antaranya sangat disonson. Salah satunya adalah Peringatan (''+BBB), gabungan string harus disebut metode tostring ... lain yang dapat kita pahami untuk sementara waktu bahwa operator === tidak melakukan konversi implisit, sehingga mereka tidak dipanggil. Untuk mengejar kebenaran, kita membutuhkan eksperimen yang lebih ketat.
var aa = {i: 10, toString: function () {console.log ('toString'); return this.i;}} alert (aa); // 10 tostringalert (+aa); // 10 tostringalert (''+aa); // 10 tostringalert (string (aa)); // 10 tostringalert (angka (aa)); // 10 tostringalert (aa == '10'); // true tostringalertLihatlah nilai lagi.
var bb = {i: 10, valueOf: function () {console.log ('valueOf'); return this.i;}} peringatan (bb); // [objek objek] peringatan (+bb); // 10 valueOfalert (''+bb); // 10 valueOfalert (string (bb)); // [objek objek] peringatan (angka (bb)); // 10 valueOfalert (bb == '10'); // nilai trueSaya merasa sedikit berbeda? Lai Ini tidak seragam dan teratur seperti tostring di atas. Untuk itu [objek objek], saya mungkin mewarisi dari objek, mari kita hapus dan lihat.
Object.prototype.toString = null; var cc = {i: 10, valueOf: function () {console.log ('valueOf'); return this.i;}} alert (cc); // 10 valueOfalert (+cc); // 10 valueOfalert (''+cc); // 10 valueOfalert (string (cc)); // 10 valueOfalert (angka (cc)); // 10 valueOfalert (cc == '10'); // nilai trueJika saja ToString ditulis ulang, konversi objek akan mengabaikan keberadaan nilai saat mengkonversi. Namun, jika hanya metode nilai yang ditulis ulang, metode nilai akan diberikan prioritas saat mengonversi ke string. Jika Anda tidak dapat menghubungi ToString, Anda hanya bisa membiarkan nilai pergi ke pertempuran. Untuk masalah penyambungan string aneh itu, mungkin karena operator. Ketika Anda membuka ECMA262-5, Anda akan menemukan bahwa ada operasi GetValue. Nah, maka jawabannya harus diungkapkan. Penulisan ulang akan meningkatkan optimalisasi panggilan mereka, dan dalam kasus operator, prioritas nilai sudah lebih tinggi daripada tostring.
Di atas adalah deskripsi lengkap dari nilai dan metode tostring dalam JavaScript yang diperkenalkan kepada Anda oleh editor. Saya harap ini akan membantu Anda. Jika Anda memiliki pertanyaan, silakan tinggalkan saya pesan dan editor akan membalas Anda tepat waktu. Terima kasih banyak atas dukungan Anda ke situs web Wulin.com!