cari
Rumahhujung hadapan webtutorial jsPenjelasan terperinci tentang kemahiran bersiri_javascript objek JavaScript

1. Apakah siri objek?

Pensirian objek merujuk kepada menukar keadaan objek kepada rentetan (dari pemahaman saya yang baru, nampaknya beberapa buku juga mengatakan ini, ia mudah difahami!

Pensirian ialah proses menukar maklumat keadaan objek kepada bentuk yang boleh disimpan atau dihantar (daripada "Baidu Encyclopedia - Serialization", sangat akademik dan sedikit tinggi

);

2. Mengapakah terdapat siri objek?

Semua di dunia ini ada sebab kewujudannya. Mengapakah terdapat siri objek? Kerana pengaturcara memerlukannya. Memandangkan ia adalah penyirian objek, mari kita mulakan dengan objek:

var obj = {x:1, y:2};

Apabila kod ini dijalankan, kandungan objek obj akan disimpan dalam sekeping memori, dan obj sendiri hanya menyimpan pemetaan alamat memori ini. Ringkasnya, object obj ialah sesuatu yang program kami kekalkan dalam ingatan apabila komputer dihidupkan Jika program kami berhenti atau komputer dimatikan, object obj tidak akan wujud lagi. Jadi bagaimana untuk menyimpan kandungan objek obj pada cakera (iaitu, menyimpannya apabila kuasa padam)? Pada masa ini, anda perlu menyerikan objek obj, iaitu, menukar kandungan obj ke dalam bentuk rentetan, dan kemudian simpannya pada cakera. Di samping itu, bagaimanakah kami menghantar kandungan objek obj kepada klien melalui protokol HTTP? Ya, anda masih perlu menyerikan objek obj terlebih dahulu, dan kemudian klien menyahsiri (iaitu, memulihkan rentetan kepada objek) untuk menghuraikan objek yang sepadan berdasarkan rentetan yang diterima. Ini betul-betul dua fungsi yang diterangkan dalam "Baidu Encyclopedia - Serialization" - penyimpanan dan penghantaran.

3. Siri objek dalam JavaScript

Nama penuh JSON ialah "JavaScript Object Notation" - JavaScript object notation. ECMAScript 5 menyediakan fungsi terbina dalam JSON.stringify() dan JSON.parse() untuk mensiri dan memulihkan objek JavaScript. Ia juga mudah digunakan:

Seperti yang anda lihat, tiada kandungan y:undefined dalam exampleStr dan exampleObj2. Ini menunjukkan bahawa: Sintaks JSON ialah subset sintaks JavaScript Ia tidak boleh mewakili semua nilai dalam JavaScript Untuk atribut yang tidak disokong oleh sintaks JSON, ia akan diabaikan selepas bersiri. Peraturan terperinci adalah seperti berikut:

  • ① Untuk lima jenis primitif dalam JavaScript, sintaks JSON menyokong empat jenis: nombor, rentetan, nilai Boolean dan nol
  • ②Hasil siri NaN, Infinity dan -Infinity adalah batal;
  • ③Sintaks JSON tidak menyokong fungsi
  • ④Selain objek RegExp dan Ralat, sintaks JSON menyokong semua objek lain
  • ⑤Hasil siri objek tarikh ialah rentetan format ISO, tetapi JSON.parse() masih mengekalkan bentuk rentetannya dan tidak akan memulihkannya kepada objek tarikh; >
  • ⑥JSON.stringify() hanya boleh menyerikan sifat objek sendiri yang boleh dikira
  • Seperti yang dapat dilihat daripada contoh di atas, jika peraturan di atas dipenuhi, penyalinan mendalam objek juga boleh diselesaikan melalui pensirilan objek dan penyahsirilan. Di atas adalah kegunaan biasa JSON.stringify() dan JSON.parse(), tetapi kedua-dua kaedah ini bukan semudah itu:
4. Versi penuh JSON.stringify()

1. Pengenalan

Mensiri nilai primitif, objek atau tatasusunan 2. Ringkasan

JSON.stringify(o[, filter][, indent]) 3. Parameter

o, nilai asal, objek atau tatasusunan untuk ditukar kepada rentetan JSON Penapis, parameter pilihan, tatasusunan atau fungsi inden, parameter pilihan, nilai atau rentetan

4. Kembali

Rentetan dalam format JSON, mewakili nilai o, yang telah melepasi penapisan dan diformatkan mengikut inden 5. Penerangan

 ①Apabila objek o sendiri mempunyai kaedah toJSON(), JSON.stringify() akan memanggil kaedah toJSON() o dan menggunakan nilai pulangan kaedah dan bukannya objek itu sendiri untuk stringifikasi;  ②Jika penapis wujud dan merupakan fungsi, nilai pulangan fungsi akan digunakan sebagai nilai pulangan kaedah JSON.stringify(). Dan fungsi ini menerima dua parameter, parameter pertama adalah rentetan kosong, dan parameter kedua ialah objek o.  ③Jika penapis wujud dan merupakan tatasusunan rentetan (jika tatasusunan mengandungi nombor, nombor akan ditukar secara automatik kepada rentetan), maka jika beberapa nama atribut objek o tiada dalam tatasusunan ini, ini akan disiri semasa penyirian atribut ditinggalkan, dan susunan atribut dalam rentetan yang dikembalikan akan konsisten dengan susunan atribut dalam tatasusunan

 ④JSON.stringify() renvoie généralement une chaîne sans espaces ni nouvelles lignes. Si vous souhaitez générer une chaîne plus lisible, vous devez spécifier le troisième paramètre. Si le troisième paramètre spécifié est une valeur comprise entre 1 et 10, JSON.stringify() insérera des nouvelles lignes et le nombre d'espaces spécifié dans la sortie de chaque "niveau". Si le troisième paramètre spécifié est une chaîne non vide, JSON.stringify() insérera un caractère de nouvelle ligne et la chaîne (uniquement les dix premiers caractères) pour mettre en retrait le niveau

 ;

5. Version complète JSON.parse()

1. Introduction

Analyser les chaînes au format JSON

2.Résumé

JSON.parse(s[, reviver])

3. Paramètres

s, la chaîne à analyser

Reviver, paramètre facultatif, fonction facultative utilisée pour convertir les valeurs analysées

4. Retour

Un objet, un tableau ou une valeur primitive. La valeur de retour est analysée à partir de s (et peut être modifiée par reviver

) ;

5. Description

 ①Si la fonction reviver est spécifiée, cette fonction sera appelée une fois pour chaque valeur d'origine analysée à partir de s (pas l'objet ou le tableau contenant ces valeurs d'origine). Il y a deux paramètres lors de l'appel de reviver. Le premier paramètre est le nom de l'attribut - le nom de l'attribut de l'objet ou le numéro du tableau converti en chaîne. Le deuxième paramètre est la valeur d'origine de l'attribut de l'objet ou de l'élément du tableau. De plus, la valeur de retour de la fonction reviver sera utilisée comme valeur de retour de JSON.parse();

Ce qui précède est le contenu pertinent sur la sérialisation d'objets JavaScript. J'espère qu'il sera utile à l'apprentissage de chacun.

Kenyataan
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
Python vs JavaScript: Keluk Pembelajaran dan Kemudahan PenggunaanPython vs JavaScript: Keluk Pembelajaran dan Kemudahan PenggunaanApr 16, 2025 am 12:12 AM

Python lebih sesuai untuk pemula, dengan lengkung pembelajaran yang lancar dan sintaks ringkas; JavaScript sesuai untuk pembangunan front-end, dengan lengkung pembelajaran yang curam dan sintaks yang fleksibel. 1. Sintaks Python adalah intuitif dan sesuai untuk sains data dan pembangunan back-end. 2. JavaScript adalah fleksibel dan digunakan secara meluas dalam pengaturcaraan depan dan pelayan.

Python vs JavaScript: Komuniti, Perpustakaan, dan SumberPython vs JavaScript: Komuniti, Perpustakaan, dan SumberApr 15, 2025 am 12:16 AM

Python dan JavaScript mempunyai kelebihan dan kekurangan mereka sendiri dari segi komuniti, perpustakaan dan sumber. 1) Komuniti Python mesra dan sesuai untuk pemula, tetapi sumber pembangunan depan tidak kaya dengan JavaScript. 2) Python berkuasa dalam bidang sains data dan perpustakaan pembelajaran mesin, sementara JavaScript lebih baik dalam perpustakaan pembangunan dan kerangka pembangunan depan. 3) Kedua -duanya mempunyai sumber pembelajaran yang kaya, tetapi Python sesuai untuk memulakan dengan dokumen rasmi, sementara JavaScript lebih baik dengan MDNWebDocs. Pilihan harus berdasarkan keperluan projek dan kepentingan peribadi.

Dari C/C ke JavaScript: Bagaimana semuanya berfungsiDari C/C ke JavaScript: Bagaimana semuanya berfungsiApr 14, 2025 am 12:05 AM

Peralihan dari C/C ke JavaScript memerlukan menyesuaikan diri dengan menaip dinamik, pengumpulan sampah dan pengaturcaraan asynchronous. 1) C/C adalah bahasa yang ditaip secara statik yang memerlukan pengurusan memori manual, manakala JavaScript ditaip secara dinamik dan pengumpulan sampah diproses secara automatik. 2) C/C perlu dikumpulkan ke dalam kod mesin, manakala JavaScript adalah bahasa yang ditafsirkan. 3) JavaScript memperkenalkan konsep seperti penutupan, rantaian prototaip dan janji, yang meningkatkan keupayaan pengaturcaraan fleksibiliti dan asynchronous.

Enjin JavaScript: Membandingkan PelaksanaanEnjin JavaScript: Membandingkan PelaksanaanApr 13, 2025 am 12:05 AM

Enjin JavaScript yang berbeza mempunyai kesan yang berbeza apabila menguraikan dan melaksanakan kod JavaScript, kerana prinsip pelaksanaan dan strategi pengoptimuman setiap enjin berbeza. 1. Analisis leksikal: Menukar kod sumber ke dalam unit leksikal. 2. Analisis Tatabahasa: Menjana pokok sintaks abstrak. 3. Pengoptimuman dan Penyusunan: Menjana kod mesin melalui pengkompil JIT. 4. Jalankan: Jalankan kod mesin. Enjin V8 mengoptimumkan melalui kompilasi segera dan kelas tersembunyi, Spidermonkey menggunakan sistem kesimpulan jenis, menghasilkan prestasi prestasi yang berbeza pada kod yang sama.

Beyond the Browser: JavaScript di dunia nyataBeyond the Browser: JavaScript di dunia nyataApr 12, 2025 am 12:06 AM

Aplikasi JavaScript di dunia nyata termasuk pengaturcaraan sisi pelayan, pembangunan aplikasi mudah alih dan Internet of Things Control: 1. Pengaturcaraan sisi pelayan direalisasikan melalui node.js, sesuai untuk pemprosesan permintaan serentak yang tinggi. 2. Pembangunan aplikasi mudah alih dijalankan melalui reaktnatif dan menyokong penggunaan silang platform. 3. Digunakan untuk kawalan peranti IoT melalui Perpustakaan Johnny-Five, sesuai untuk interaksi perkakasan.

Membina aplikasi SaaS Multi-penyewa dengan Next.js (Integrasi Backend)Membina aplikasi SaaS Multi-penyewa dengan Next.js (Integrasi Backend)Apr 11, 2025 am 08:23 AM

Saya membina aplikasi SaaS multi-penyewa berfungsi (aplikasi edTech) dengan alat teknologi harian anda dan anda boleh melakukan perkara yang sama. Pertama, apakah aplikasi SaaS multi-penyewa? Aplikasi SaaS Multi-penyewa membolehkan anda melayani beberapa pelanggan dari Sing

Cara Membina Aplikasi SaaS Multi-Tenant dengan Next.js (Integrasi Frontend)Cara Membina Aplikasi SaaS Multi-Tenant dengan Next.js (Integrasi Frontend)Apr 11, 2025 am 08:22 AM

Artikel ini menunjukkan integrasi frontend dengan backend yang dijamin oleh permit, membina aplikasi edtech SaaS yang berfungsi menggunakan Next.Js. Frontend mengambil kebenaran pengguna untuk mengawal penglihatan UI dan memastikan permintaan API mematuhi dasar peranan

JavaScript: meneroka serba boleh bahasa webJavaScript: meneroka serba boleh bahasa webApr 11, 2025 am 12:01 AM

JavaScript adalah bahasa utama pembangunan web moden dan digunakan secara meluas untuk kepelbagaian dan fleksibiliti. 1) Pembangunan front-end: Membina laman web dinamik dan aplikasi satu halaman melalui operasi DOM dan kerangka moden (seperti React, Vue.js, sudut). 2) Pembangunan sisi pelayan: Node.js menggunakan model I/O yang tidak menyekat untuk mengendalikan aplikasi konkurensi tinggi dan masa nyata. 3) Pembangunan aplikasi mudah alih dan desktop: Pembangunan silang platform direalisasikan melalui reaktnatif dan elektron untuk meningkatkan kecekapan pembangunan.

See all articles

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 laluBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
4 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
4 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Arahan sembang dan cara menggunakannya
4 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌

Alat panas

Muat turun versi mac editor Atom

Muat turun versi mac editor Atom

Editor sumber terbuka yang paling popular

Pelayar Peperiksaan Selamat

Pelayar Peperiksaan Selamat

Pelayar Peperiksaan Selamat ialah persekitaran pelayar selamat untuk mengambil peperiksaan dalam talian dengan selamat. Perisian ini menukar mana-mana komputer menjadi stesen kerja yang selamat. Ia mengawal akses kepada mana-mana utiliti dan menghalang pelajar daripada menggunakan sumber yang tidak dibenarkan.

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

SublimeText3 versi Inggeris

SublimeText3 versi Inggeris

Disyorkan: Versi Win, menyokong gesaan kod!

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma