Rumah hujung hadapan web tutorial js Berikan contoh untuk menerangkan cara menentukan jenis objek dalam pengetahuan JavaScript_Basic

Berikan contoh untuk menerangkan cara menentukan jenis objek dalam pengetahuan JavaScript_Basic

May 16, 2016 pm 03:04 PM
javascript js objek Jenis objek

Dalam proses menulis program js, anda mungkin sering perlu menentukan jenis objek Sebagai contoh, jika anda menulis fungsi, anda perlu menentukan jenis parameter yang berbeza untuk menulis kod yang berbeza.
Pertama sekali, anda mungkin memikirkan jenis operator Lihat contoh berikut:

 <script type="text/javascript"> var object = {}; var b = true; alert(typeof object + " " + typeof b); </script>
Salin selepas log masuk

Hasil yang diperoleh adalah seperti berikut:

<. 🎜>

2016422170645689.png (377×220)

Seperti yang anda boleh lihat daripada keputusan di atas, operator jenis boleh digunakan untuk memaparkan jenis objek Jadi apakah keputusan nol dan tidak ditentukan dalam skop operator jenis ?

 /*var object = {}; var b = true; alert(typeof object + " " + typeof b);*/ alert(typeof null + " " + typeof undefined)
Salin selepas log masuk

2016422170716617.png (239×143)

Jenis operator bertindak pada null dan sebenarnya memaparkan "objek" (ini nampaknya tidak saintifik, saya fikir ia akan memaparkan "null'" ), bertindak pada paparan yang tidak ditentukan "tidak ditentukan" (ini adalah selaras dengan hasil yang kita inginkan), jadi apabila menggunakan operator jenis untuk menentukan jenis objek, berhati-hatilah kerana objek itu mungkin batal. Di atas hanya memberikan sebahagian daripada hasil jenis operasi pada objek ini Jadual berikut menyenaraikan keputusan jenis operator yang beroperasi pada Boolean, Number, String, Array, Date, RegExp, Object, Function, null, undefined (pembaca yang berminat Anda. boleh mengujinya sendiri):


2016422170736411.png (504×291)

Daripada keputusan dalam jadual di atas, kita dapat melihat bahawa Array, Date dan RegExp semua objek paparan Mengapa mereka tidak terus memaparkan jenis objek? Ini akan membawa kepada operator lain bagi operator js: instanceof Operator ini digunakan untuk menentukan sama ada objek adalah jenis objek tertentu Nilai yang dikira adalah benar atau salah. Mari kita lihat dahulu:

 var now = new Date(); var pattern = /^[\s\S]*$/; var names = [&#39;zq&#39;, &#39;john&#39;]; alert((now instanceof Date) + " " + (pattern instanceof RegExp) + " " + (names instanceof Array));
Salin selepas log masuk

2016422170805336.png (385×281)

Jelas sekali jenis objek boleh ditentukan melalui instanceof ini, tetapi ini hanya boleh menentukan selain daripada jenis asas Untuk jenis lain (termasuk jenis String), dia tidak boleh menentukan jenis asas. Walau bagaimanapun, instanceof tidak boleh selalu dinilai secara normal Pertimbangkan situasi bingkai Untuk menilai sama ada objek jenisnya adalah objek yang dilalui oleh bingkai lain, mula-mula lihat contoh berikut.

main.html

 <!doctype html> <html lang="en"> <head> <title>Main</title> </head> <frameset cols="45%,*">  <frame name="frame1" src="frame1.html"/>  <frame name="frame2" src="frame2.html"/> </frameset> </html>
Salin selepas log masuk
frame1.html

 <!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <title>frame1</title> </head> <script type="text/javascript"> var names = [&#39;riccio zhang&#39;, &#39;zq&#39;, &#39;john&#39;]; </script> <body style="background: #ccc"> </body> </html>
Salin selepas log masuk
frame2.html

 <!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <title>frame2</title> <script type="text/javascript"> document.write("top.frame1.names instanceof Array:"  + (top.frame1.names instanceof Array)); document.write("<br/>"); document.write("top.frame1.names instanceof top.frame1.Array:"  + (top.frame1.names instanceof top.frame1.Array)); document.write("<br/>"); document.write("top.frame1.Array === top.frame2.Array?" + (top.frame1.Array === top.frame2.Array)); </script> </head> <body style="background: #747474"> </body> </html>
Salin selepas log masuk

2016422170849229.png (1365×215)

Objek nama berada dalam bingkai frame1 Pada masa ini, ia dicipta melalui Array bingkai frame1 Jika objek nama dibawa ke Array dalam frame2 untuk perbandingan, Jelas sekali nama bukan contoh Array dalam frame2 Adalah difikirkan bahawa frame1 dan frame2 tidak sama sekali Array Daripada hasil sebenar kedua, ia dapat dilihat dengan jelas bahawa nama adalah contoh bingkai dalam yang mana ia terletak Daripada output ketiga, dapat dilihat bahawa Array of frame1 dan Array of frame2 adalah berbeza. Jadi apakah yang perlu kita lakukan apabila menghadapi perbandingan bingkai silang di atas? Kami tidak boleh membandingkan Array yang sepadan dengan bingkai setiap kali Terdapat cara yang diperlukan untuk menyelesaikan masalah di atas:

 var toString = {}.toString; var now = new Date(); alert(toString.call(now))
Salin selepas log masuk

<. 🎜>2016422170910729.png (345×186){}.toString bermaksud mendapatkan kaedah toString pada objek Object (kaedah ini ialah salah satu kaedah asas objek Object), dan toString.call(now) bermaksud memanggil kaedah toString. Memanggil kaedah toString() yang paling asli bagi objek Tarikh (kaedah ini ialah kaedah pada Objek) boleh memaparkan rentetan jenis [Tarikh objek]. Jika ia adalah Array, perkataan [Array objek] akan dihasilkan, yang bermaksud bahawa operasi di atas akan memaparkan perkataan yang serupa dengan [Kelas objek], jadi bolehkah kita mengetahui jenisnya hanya dengan menilai rentetan? Daripada ini, kelas alat berikut boleh ditulis:

tools.js


 var tools = (function(undefined){ var class2type = {},  toString = {}.toString;   var fun = {  type: function (obj){   return obj === null || obj === undefined ?      String(obj) : class2type[toString.call(obj)]  },  isArray: function (obj){   return fun.type(obj) === "array";  },  isFunction: function (obj){   return fun.type(obj) === "function";  },  each: function (arr, callback){   var i = 0,    hasLength = arr.length ? true : false;   if(!callback || (typeof callback !== &#39;function&#39;) || !hasLength){    return;   }   for(i = 0; i< arr.length; i++){    if(callback.call(arr[i], i, arr[i]) === false){      break;    }   }  } }; fun.each("Boolean Number String Array Date RegExp Object Function".split(" "), function(i, name){  class2type["[object "+ name +"]"] = name.toLowerCase(); }); return fun; })();
Salin selepas log masuk
alat menyediakan kaedah seperti jenis, isArray, isFunction untuk menentukan jenis objek. Mengikut sebenar Jika perlu, anda boleh menambah kaedah anda sendiri untuk menentukan jenis. type menerima parameter obj, yang mengembalikan jenis sebenar objek dalam huruf kecil Contohnya, jika anda perlu menentukan jenis objek ialah Array, maka kaedah ini akan mengembalikan tatasusunan.
Tulis semula berdasarkan kelas alat. disediakan di atas Contoh di atas:

fram2.html

 <!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <title>frame2</title> <script type="text/javascript" src="tools.js"></script> <script type="text/javascript"> document.write("top.frame1.names instanceof Array:"  + (top.frame1.names instanceof Array)); document.write("<br/>"); document.write("top.frame1.names instanceof top.frame1.Array:"  + (top.frame1.names instanceof top.frame1.Array)); document.write("<br/>"); document.write("top.frame1.Array === top.frame2.Array?" + (top.frame1.Array === top.frame2.Array)); document.write("<br/>"); document.write("tools.isArray(top.frame1.names)?" + tools.isArray(top.frame1.names)); </script> </head> <body style="background: #747474"> </body> </html>
Salin selepas log masuk

2016422171011812.png (1363×189)Pada ketika ini, jenis objek boleh ditentukan dengan mudah melalui kelas atas.

Nota: Elemen seperti amaran tidak boleh dinilai dalam IE.

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Arahan sembang dan cara menggunakannya
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Disyorkan: Projek pengesanan dan pengecaman muka sumber terbuka JS yang sangat baik Disyorkan: Projek pengesanan dan pengecaman muka sumber terbuka JS yang sangat baik Apr 03, 2024 am 11:55 AM

Teknologi pengesanan dan pengecaman muka adalah teknologi yang agak matang dan digunakan secara meluas. Pada masa ini, bahasa aplikasi Internet yang paling banyak digunakan ialah JS Melaksanakan pengesanan muka dan pengecaman pada bahagian hadapan Web mempunyai kelebihan dan kekurangan berbanding dengan pengecaman muka bahagian belakang. Kelebihan termasuk mengurangkan interaksi rangkaian dan pengecaman masa nyata, yang sangat memendekkan masa menunggu pengguna dan meningkatkan pengalaman pengguna termasuk: terhad oleh saiz model, ketepatannya juga terhad. Bagaimana untuk menggunakan js untuk melaksanakan pengesanan muka di web? Untuk melaksanakan pengecaman muka di Web, anda perlu biasa dengan bahasa dan teknologi pengaturcaraan yang berkaitan, seperti JavaScript, HTML, CSS, WebRTC, dll. Pada masa yang sama, anda juga perlu menguasai visi komputer yang berkaitan dan teknologi kecerdasan buatan. Perlu diingat bahawa kerana reka bentuk bahagian Web

Bagaimana untuk menukar tatasusunan hasil pertanyaan MySQL kepada objek? Bagaimana untuk menukar tatasusunan hasil pertanyaan MySQL kepada objek? Apr 29, 2024 pm 01:09 PM

Begini cara untuk menukar tatasusunan hasil pertanyaan MySQL kepada objek: Cipta tatasusunan objek kosong. Gelung melalui tatasusunan yang terhasil dan buat objek baharu untuk setiap baris. Gunakan gelung foreach untuk menetapkan pasangan nilai kunci setiap baris kepada sifat yang sepadan bagi objek baharu. Menambah objek baharu pada tatasusunan objek. Tutup sambungan pangkalan data.

Petua Pembangunan PHP dan JS: Kuasai Kaedah Melukis Carta Lilin Stok Petua Pembangunan PHP dan JS: Kuasai Kaedah Melukis Carta Lilin Stok Dec 18, 2023 pm 03:39 PM

Dengan perkembangan pesat kewangan Internet, pelaburan saham telah menjadi pilihan semakin ramai orang. Dalam perdagangan saham, carta lilin adalah kaedah analisis teknikal yang biasa digunakan Ia boleh menunjukkan trend perubahan harga saham dan membantu pelabur membuat keputusan yang lebih tepat. Artikel ini akan memperkenalkan kemahiran pembangunan PHP dan JS, membawa pembaca memahami cara melukis carta lilin saham dan menyediakan contoh kod khusus. 1. Memahami Carta Lilin Saham Sebelum memperkenalkan cara melukis carta lilin saham, kita perlu memahami dahulu apa itu carta lilin. Carta candlestick telah dibangunkan oleh orang Jepun

Tutorial JavaScript Mudah: Cara Mendapatkan Kod Status HTTP Tutorial JavaScript Mudah: Cara Mendapatkan Kod Status HTTP Jan 05, 2024 pm 06:08 PM

Tutorial JavaScript: Bagaimana untuk mendapatkan kod status HTTP, contoh kod khusus diperlukan: Dalam pembangunan web, interaksi data dengan pelayan sering terlibat. Apabila berkomunikasi dengan pelayan, kami selalunya perlu mendapatkan kod status HTTP yang dikembalikan untuk menentukan sama ada operasi itu berjaya dan melaksanakan pemprosesan yang sepadan berdasarkan kod status yang berbeza. Artikel ini akan mengajar anda cara menggunakan JavaScript untuk mendapatkan kod status HTTP dan menyediakan beberapa contoh kod praktikal. Menggunakan XMLHttpRequest

Hubungan antara js dan vue Hubungan antara js dan vue Mar 11, 2024 pm 05:21 PM

Hubungan antara js dan vue: 1. JS sebagai asas pembangunan Web; 2. Kebangkitan Vue.js sebagai rangka kerja hadapan 3. Hubungan pelengkap antara JS dan Vue; Vue.

Apakah perbezaan antara tatasusunan dan objek dalam PHP? Apakah perbezaan antara tatasusunan dan objek dalam PHP? Apr 29, 2024 pm 02:39 PM

Dalam PHP, tatasusunan ialah urutan tersusun, dan elemen diakses mengikut indeks; Akses tatasusunan adalah melalui indeks, akses objek adalah melalui sifat/kaedah. Nilai tatasusunan diluluskan dan rujukan objek diluluskan.

Apakah yang perlu saya perhatikan apabila fungsi C++ mengembalikan objek? Apakah yang perlu saya perhatikan apabila fungsi C++ mengembalikan objek? Apr 19, 2024 pm 12:15 PM

Dalam C++, terdapat tiga perkara yang perlu diperhatikan apabila fungsi mengembalikan objek: Kitaran hayat objek diuruskan oleh pemanggil untuk mengelakkan kebocoran memori. Elakkan penunjuk berjuntai dan pastikan objek kekal sah selepas fungsi kembali dengan memperuntukkan memori secara dinamik atau mengembalikan objek itu sendiri. Pengkompil boleh mengoptimumkan pembuatan salinan objek yang dikembalikan untuk meningkatkan prestasi, tetapi jika objek itu diluluskan oleh semantik nilai, tiada pembuatan salinan diperlukan.

Apakah objek Permintaan dalam PHP? Apakah objek Permintaan dalam PHP? Feb 27, 2024 pm 09:06 PM

Objek Permintaan dalam PHP ialah objek yang digunakan untuk mengendalikan permintaan HTTP yang dihantar oleh klien ke pelayan. Melalui objek Permintaan, kami boleh mendapatkan maklumat permintaan pelanggan, seperti kaedah permintaan, maklumat pengepala permintaan, parameter permintaan, dsb., untuk memproses dan membalas permintaan tersebut. Dalam PHP, anda boleh menggunakan pembolehubah global seperti $_REQUEST, $_GET, $_POST, dll. untuk mendapatkan maklumat yang diminta, tetapi pembolehubah ini bukan objek, tetapi tatasusunan. Untuk memproses maklumat permintaan dengan lebih fleksibel dan mudah, anda boleh

See all articles