Bagaimana untuk menyemak sama ada nilai adalah seperti objek dalam JavaScript?

WBOY
Lepaskan: 2023-08-24 16:13:02
ke hadapan
508 orang telah melayarinya

如何在 JavaScript 中检查一个值是否类似于对象?

Dalam JavaScript, nilai seperti objek ialah nilai yang bukan primitif dan tidak tidak ditentukan. Nilai seperti objek ialah sebarang nilai yang bukan primitif, termasuk fungsi, tatasusunan dan objek. Terdapat cara yang berbeza dalam JavaScript untuk menyemak sama ada nilai ialah objek. Dalam artikel ini, kami akan memperkenalkan 3 cara untuk menyemak sama ada nilai ialah objek kelas dalam JavaScript.

Gunakan operator jenis

typeof operator ialah operator terbina dalam dalam JavaScript yang digunakan untuk menyemak jenis nilai. Operator jenis mengembalikan rentetan yang merupakan jenis nilai. Pengendali jenis boleh digunakan untuk menyemak sama ada nilai dalam JavaScript adalah serupa dengan objek.

Contoh 1

<!doctype html>
<html>
<head>
   <title>Examples</title>
</head>
<body>
   <div id="result1"></div>
   <div id="result2"></div>
   <div id="result3"></div>
   <script>
      document.getElementById("result1").innerHTML ="typeof {}: " + typeof {};
      document.getElementById("result2").innerHTML ="typeof []: " + typeof [];
      document.getElementById("result3").innerHTML ="typeof function(){}: " + typeof function(){};
   </script>
</body>
</html>
Salin selepas log masuk

Berikut ialah penjelasan terperinci tentang coretan kod di atas:

Dalam pernyataan pertama dalam teg skrip, kami sedang menyemak jenis objek kosong {}. ini Pengendali jenis mengembalikan rentetan "objek" objek kosong. Dalam pernyataan kedua, Kami sedang menyemak jenis tatasusunan kosong []. operator typeof mengembalikan rentetan "objek" bermaksud tatasusunan kosong. Dalam pernyataan ketiga kami menyemak jenis an Fungsi fungsi tanpa nama(){}. Pengendali jenis mengembalikan "fungsi" rentetan Fungsi tanpa nama.

Gunakan operator instanceof:

instanceof operator ialah operator terbina dalam dalam JavaScript yang digunakan untuk menyemak sama ada nilai ialah contoh fungsi pembina. instanceof operator mengembalikan nilai boolean nilai, benar jika nilai adalah contoh pembina; nilai bukan contoh pembina. Anda boleh menggunakan instanceof operator Semak sama ada nilai dalam JavaScript adalah seperti objek.

Contoh 2

<!doctype html>
<html>
<head>
   <title>Examples</title>
</head>
<body>
   <div id="result1"></div>
   <div id="result2"></div>
   <div id="result3"></div>
   <script>
      document.getElementById("result1").innerHTML = "Is {} an instance of Object: " + ({} instanceof Object);
      document.getElementById("result2").innerHTML = "Is [] an instance of Array: " +([] instanceof Array);
      document.getElementById("result3").innerHTML ="Is function(){} is an instance of Function: " + (function(){} instanceof Function);
   </script>
</body>
</html>
Salin selepas log masuk

Dalam teg skrip, dalam pernyataan pertama, kami menyemak sama ada objek kosong {} ialah Contoh pembina objek. instanceof operator kembali Nilai Boolean benar untuk objek kosong. Dalam pernyataan kedua kita menyemak sama ada Tatasusunan kosong[] ialah contoh pembina Tatasusunan. pengendali contoh Mengembalikan Boolean benar untuk tatasusunan kosong. Dalam pernyataan ketiga kita sedang menyemak Jika fungsi tanpa nama function(){} ialah contoh pembina Fungsi. Untuk fungsi tanpa nama, pengendali instanceof mengembalikan nilai Boolean benar. Kaedah

Object.prototype.toString():

Object.prototype.toString() kaedah ialah kaedah terbina dalam JavaScript yang digunakan untuk menukar objek kepada rentetan. Kaedah Object.prototype.toString() boleh digunakan untuk menyemak sama ada nilai dalam JavaScript adalah seperti objek.

Contoh 3

<!doctype html>
<html>
<head>
   <title>Examples</title>
</head>
<body>
   <div id="result1"></div>
   <div id="result2"></div>
   <div id="result3"></div>
   <script>
      document.getElementById("result1").innerHTML = Object.prototype.toString.call({})
      document.getElementById("result2").innerHTML = Object.prototype.toString.call([])
      document.getElementById("result3").innerHTML = Object.prototype.toString.call(function(){})
   </script>
</body>
</html>
Salin selepas log masuk

Dalam pernyataan pertama di dalam tag skrip, kami menggunakan Kaedah Object.prototype.toString() menukar objek kosong {} kepada rentetan. ini Kaedah Object.prototype.toString() mengembalikan rentetan "[objek Objek]" Objek kosong.

Dalam pernyataan kedua di dalam tag skrip yang kami gunakan Kaedah Object.prototype.toString() menukar tatasusunan kosong[] kepada rentetan. ini Kaedah Object.prototype.toString() mengembalikan rentetan kosong "[object Array]"

Dalam pernyataan ketiga, kami menggunakan kaedah Object.prototype.toString() untuk Tukar fungsi fungsi tanpa nama(){} kepada rentetan. ini Kaedah Object.prototype.toString() mengembalikan rentetan "[objek Fungsi]" Fungsi tanpa nama.

Kesimpulan

Dalam tutorial ini kami melihat tiga cara berbeza untuk menyemak sama ada nilai adalah serupa dengan objek JavaScript. Kami melihat jenis operator, instanceof operator, dan Kaedah Object.prototype.toString(). Semua kaedah ini boleh digunakan untuk menyemak sama ada nilai itu Sama seperti objek dalam JavaScript.

Atas ialah kandungan terperinci Bagaimana untuk menyemak sama ada nilai adalah seperti objek dalam JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:tutorialspoint.com
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan