Dalam artikel ini, kami akan mengkaji manfaat Serialization Object, pelaksanaan pelayar semasa, dan membangunkan beberapa kod yang dapat membantu projek berasaskan Ajax anda.
Anggapkan kita mempunyai objek JavaScript yang agak kompleks yang ditakrifkan menggunakan notasi literal:
var obj1 = {
b1: true,
s1: "text string",
n1: 12345,
n2: null,
n3: undefined,
a1: [ 1,1,2,3,5,8, [13, 21, 34] ],
o1: {
a: [3, 2, 1],
b: {
c: 42,
d: [ 3.14, 1.618 ]
}
}
};
Kami boleh mengakses mana -mana sifat objek dalam pelbagai cara:
obj1.s1; // returns "text string"
obj1["n1"]; // returns 12345
obj1.a1[6][1]; // returns 21
obj1["o1"]["b"]["c"]; // returns 42
Objek ini juga boleh diserahkan kepada fungsi dan kaedah JavaScript dan bukannya menentukan hujah individu. Barang berguna.
Walau bagaimanapun, bagaimana jika kita perlu menyimpan objek ini dalam kuki? Bagaimana jika kita perlu lulus objek ke perkhidmatan web melalui permintaan AJAX? Bagaimana jika perkhidmatan web itu mahu mengembalikan versi objek yang diubah suai? Jawapannya adalah bersiri:
Mungkin notasi rentetan terbaik yang boleh kita gunakan dalam JavaScript ialah JSON - Notasi Objek JavaScript. JSON adalah format interchange data ringan yang diilhamkan oleh notasi literal objek JavaScript seperti yang ditunjukkan di atas. JSON disokong oleh PHP dan banyak bahasa pelayan lain (rujuk json.org).
Terdapat dua kaedah JSON di JavaScript:
Malangnya, penyemak imbas yang sangat sedikit menyediakan kaedah ini. Sehingga kini, hanya Firefox 3.5, Internet Explorer 8.0 dan Chrome 3 beta menawarkan sokongan asli. Beberapa perpustakaan JavaScript menawarkan alat JSON mereka sendiri (seperti Yui
) tetapi ramai yang tidak (termasuk jQuery).
Walau bagaimanapun, semuanya tidak hilang - JavaScript adalah fleksibel dan kami boleh melaksanakan kaedah JSON Stringify dan Purse apabila pelayar memerlukannya.
Di bahagian atas kod kami, kami akan membuat pemboleh ubah JSON yang menunjuk kepada objek JSON asli atau objek kosong jika tidak tersedia:
var JSON = JSON || {};
Kod JSON.Stringify sedikit lebih kompleks:
// implement JSON.stringify serialization
JSON.stringify = JSON.stringify || function (obj) {
var t = typeof (obj);
if (t != "object" || obj === null) {
// simple data type
if (t == "string") obj = '"'+obj+'"';
return String(obj);
}
else {
// recurse array or object
var n, v, json = [], arr = (obj && obj.constructor == Array);
for (n in obj) {
v = obj[n]; t = typeof(v);
if (t == "string") v = '"'+v+'"';
else if (t == "object" && v !== null) v = JSON.stringify(v);
json.push((arr ? "" : '"' + n + '":') + String(v));
}
return (arr ? "[" : "{") + String(json) + (arr ? "]" : "}");
}
};
Jika json.stringify tidak tersedia, kami menentukan fungsi baru yang menerima parameter OBJ tunggal. Parameter ini boleh menjadi satu nilai, array, atau objek kompleks seperti OBJ1 di atas.
Kod mengkaji jenis objek. Nilai tunggal dikembalikan dengan serta -merta dan hanya rentetan yang diubahsuai untuk meletakkan petikan di sekitar nilai.
Sekiranya array atau objek diluluskan, kod itu melangkah melalui setiap harta:
Jika sakit otak anda, anda akan gembira mengetahui bahawa kod JSON.Parse lebih mudah:
var obj1 = {
b1: true,
s1: "text string",
n1: 12345,
n2: null,
n3: undefined,
a1: [ 1,1,2,3,5,8, [13, 21, 34] ],
o1: {
a: [3, 2, 1],
b: {
c: 42,
d: [ 3.14, 1.618 ]
}
}
};
Ini menukarkan rentetan JSON ke objek menggunakan eval ().
Sebelum anda tergesa -gesa untuk melaksanakan fungsi Serialization JSON dalam semua projek anda, terdapat beberapa gotchas:
Saya harap anda dapati kod itu berguna. Jangan ragu untuk menggunakannya dalam projek anda sendiri.
Fail sumber:
Bacaan Berkaitan:
akan datang: Aplikasi berguna Serialization JSON ...
soalan yang sering ditanya mengenai siri JavaScript JSON
Apakah Serialisasi JSON dalam JavaScript? Ini dilakukan dengan menggunakan kaedah JSON.Stringify (). Rentetan JSON yang dihasilkan boleh disimpan atau dihantar ke pelayan. Ini adalah proses penting dalam pembangunan web kerana ia membolehkan data dengan mudah dipindahkan antara klien dan pelayan. Berikut adalah contoh mudah:
biarkan obj = {name: "John", umur: 30, bandar: "new york"};
biarkan myjson = json.stringify (obj); 'Myjson'.Bolehkah saya bersiri di JavaScript? Kaedah ini berfungsi bukan sahaja dengan susunan mudah, tetapi juga dengan tatasusunan objek. Berikut adalah contoh:
let arr = [1, 2, 3, 4];
biarkan myjson = json.stringify (arr);
bagaimana saya menafikan rentetan JSON dalam javascript?
Deserialization adalah proses menukar rentetan JSON kembali ke objek JavaScript. Ini dilakukan dengan menggunakan kaedah JSON.Parse (). Berikut adalah contoh:
biarkan myjson = '{"name": "John", "umur": 30, "City": "New York"}'; Json.parse ().
Apa yang berlaku jika saya cuba untuk bersiri fungsi dalam JavaScript? Ini kerana JSON adalah format data dan tidak menyokong kebolehan pelaksanaan JavaScript. Ini membolehkan anda menyaring nilai-nilai atau mengubahnya semasa proses bersiri. Ini dilakukan dengan menyediakan nombor sebagai hujah ketiga kepada json.stringify (), yang mewakili bilangan ruang yang digunakan untuk lekukan. Secara lalai, apabila anda bersiri objek tarikh dalam JavaScript, ia akan ditukar kepada rentetan dalam format ISO. Apabila anda menafikannya, ia tidak akan ditukar secara automatik ke objek tarikh. Anda perlu menukarnya secara manual dengan menggunakan pembina tarikh baru (). Apabila objek mempunyai kaedah tojson (), json.stringify () memanggilnya dan bersiri nilai yang dikembalikan, bukannya objek asal. JavaScript boleh mewakili nombor dengan tepat sehingga 2^53 - 1. Jika anda perlu bersiri nombor yang lebih besar, anda mungkin perlu menukarnya ke rentetan terlebih dahulu untuk mengelakkan kehilangan ketepatan.
Atas ialah kandungan terperinci Serialization JSON Cross-Browser di JavaScript. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undress AI Tool
Gambar buka pakaian secara percuma

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Mekanisme pengumpulan sampah JavaScript secara automatik menguruskan memori melalui algoritma pembersihan tag untuk mengurangkan risiko kebocoran ingatan. Enjin melintasi dan menandakan objek aktif dari objek akar, dan tidak bertanda dianggap sebagai sampah dan dibersihkan. Sebagai contoh, apabila objek tidak lagi dirujuk (seperti menetapkan pembolehubah kepada null), ia akan dikeluarkan dalam pusingan seterusnya kitar semula. Punca kebocoran memori yang biasa termasuk: ① Pemasa atau pendengar peristiwa yang tidak jelas; ② Rujukan kepada pembolehubah luaran dalam penutupan; ③ Pembolehubah global terus memegang sejumlah besar data. Enjin V8 mengoptimumkan kecekapan kitar semula melalui strategi seperti kitar semula generasi, penandaan tambahan, kitar semula selari/serentak, dan mengurangkan masa menyekat benang utama. Semasa pembangunan, rujukan global yang tidak perlu harus dielakkan dan persatuan objek harus dihiasi dengan segera untuk meningkatkan prestasi dan kestabilan.

Terdapat tiga cara biasa untuk memulakan permintaan HTTP dalam node.js: Gunakan modul terbina dalam, axios, dan nod-fetch. 1. Gunakan modul HTTP/HTTPS terbina dalam tanpa kebergantungan, yang sesuai untuk senario asas, tetapi memerlukan pemprosesan manual jahitan data dan pemantauan ralat, seperti menggunakan https.get () untuk mendapatkan data atau menghantar permintaan pos melalui .write (); 2.AXIOS adalah perpustakaan pihak ketiga berdasarkan janji. Ia mempunyai sintaks ringkas dan fungsi yang kuat, menyokong async/menunggu, penukaran JSON automatik, pemintas, dan lain -lain. Adalah disyorkan untuk memudahkan operasi permintaan tak segerak; 3.Node-Fetch menyediakan gaya yang serupa dengan pengambilan penyemak imbas, berdasarkan janji dan sintaks mudah

Jenis data JavaScript dibahagikan kepada jenis primitif dan jenis rujukan. Jenis primitif termasuk rentetan, nombor, boolean, null, undefined, dan simbol. Nilai -nilai tidak berubah dan salinan disalin apabila memberikan nilai, jadi mereka tidak mempengaruhi satu sama lain; Jenis rujukan seperti objek, tatasusunan dan fungsi menyimpan alamat memori, dan pembolehubah menunjuk objek yang sama akan mempengaruhi satu sama lain. Typeof dan Instanceof boleh digunakan untuk menentukan jenis, tetapi memberi perhatian kepada isu -isu sejarah TypeOfNull. Memahami kedua -dua jenis perbezaan ini dapat membantu menulis kod yang lebih stabil dan boleh dipercayai.

Helo, pemaju JavaScript! Selamat datang ke berita JavaScript minggu ini! Minggu ini kami akan memberi tumpuan kepada: Pertikaian tanda dagangan Oracle dengan Deno, objek masa JavaScript baru disokong oleh pelayar, kemas kini Google Chrome, dan beberapa alat pemaju yang kuat. Mari mulakan! Pertikaian tanda dagangan Oracle dengan percubaan Deno Oracle untuk mendaftarkan tanda dagangan "JavaScript" telah menyebabkan kontroversi. Ryan Dahl, pencipta Node.js dan Deno, telah memfailkan petisyen untuk membatalkan tanda dagangan, dan dia percaya bahawa JavaScript adalah standard terbuka dan tidak boleh digunakan oleh Oracle

Rangka kerja JavaScript mana yang terbaik? Jawapannya ialah memilih yang paling sesuai mengikut keperluan anda. 1. REACT adalah fleksibel dan bebas, sesuai untuk projek sederhana dan besar yang memerlukan penyesuaian tinggi dan keupayaan seni bina pasukan; 2. Angular menyediakan penyelesaian lengkap, sesuai untuk aplikasi peringkat perusahaan dan penyelenggaraan jangka panjang; 3. Vue mudah digunakan, sesuai untuk projek kecil dan sederhana atau perkembangan pesat. Di samping itu, sama ada terdapat timbunan teknologi sedia ada, saiz pasukan, kitaran hayat projek dan sama ada SSR diperlukan juga faktor penting dalam memilih rangka kerja. Singkatnya, tidak ada kerangka terbaik, pilihan terbaik adalah yang sesuai dengan keperluan anda.

IIFE (Segera Dilanjutkan FunctionExpression) adalah ekspresi fungsi yang dilaksanakan dengan segera selepas definisi, digunakan untuk mengasingkan pembolehubah dan mengelakkan mencemarkan skop global. Ia dipanggil dengan membungkus fungsi dalam kurungan untuk menjadikannya ungkapan dan sepasang kurungan segera diikuti olehnya, seperti (fungsi () {/code/}) ();. Penggunaan terasnya termasuk: 1. Elakkan konflik berubah -ubah dan mencegah pertindihan penamaan antara skrip berganda; 2. Buat skop peribadi untuk menjadikan pembolehubah dalaman tidak kelihatan; 3. Kod modular untuk memudahkan permulaan tanpa mendedahkan terlalu banyak pembolehubah. Kaedah penulisan biasa termasuk versi yang diluluskan dengan parameter dan versi fungsi anak panah ES6, tetapi perhatikan bahawa ungkapan dan ikatan mesti digunakan.

Janji adalah mekanisme teras untuk mengendalikan operasi tak segerak dalam JavaScript. Memahami panggilan rantaian, pengendalian ralat dan gabungan adalah kunci untuk menguasai aplikasi mereka. 1. Panggilan rantai mengembalikan janji baru melalui .then () untuk merealisasikan persamaan proses tak segerak. Setiap .then () menerima hasil sebelumnya dan boleh mengembalikan nilai atau janji; 2. Pengendalian ralat harus menggunakan .catch () untuk menangkap pengecualian untuk mengelakkan kegagalan senyap, dan boleh mengembalikan nilai lalai dalam tangkapan untuk meneruskan proses; 3. Gabungan seperti janji.all () (berjaya hanya berjaya selepas semua kejayaan), janji.race () (penyempurnaan pertama dikembalikan) dan janji.allsettled () (menunggu semua penyelesaian)

CACHEAPI adalah alat yang disediakan oleh penyemak imbas kepada permintaan rangkaian cache, yang sering digunakan bersempena dengan ServiceWorker untuk meningkatkan prestasi laman web dan pengalaman luar talian. 1. Ia membolehkan pemaju menyimpan sumber secara manual seperti skrip, helaian gaya, gambar, dan lain -lain; 2. Ia boleh memadankan tindak balas cache mengikut permintaan; 3. Ia menyokong memotong cache tertentu atau membersihkan seluruh cache; 4. Ia boleh melaksanakan keutamaan cache atau strategi keutamaan rangkaian melalui perkhidmatan pekerja yang mendengar acara mengambil; 5. Ia sering digunakan untuk sokongan luar talian, mempercepat kelajuan akses berulang, sumber utama dan kandungan kemas kini latar belakang; 6. Apabila menggunakannya, anda perlu memberi perhatian kepada kawalan versi cache, sekatan penyimpanan dan perbezaan dari mekanisme caching HTTP.
