Rumah  >  Artikel  >  hujung hadapan web  >  Mengapakah eval dalam JS perlu menambah kurungan semasa memproses kemahiran JSON data_javascript

Mengapakah eval dalam JS perlu menambah kurungan semasa memproses kemahiran JSON data_javascript

WBOY
WBOYasal
2016-05-16 16:04:291090semak imbas

Disebabkan kebangkitan Ajax, JSON, format data ringan, secara beransur-ansur menjadi popular sebagai format penghantaran antara klien dan pelayan Persoalan yang timbul ialah bagaimana untuk menukar data JSON yang dibina pada bahagian pelayan kepada bentuk yang boleh digunakan objek JavaScript. Menggunakan fungsi eval sudah pasti kaedah yang mudah dan langsung. Apabila menukar, anda perlu membalut rentetan JSON dengan lapisan kurungan:

Salin kod Kod adalah seperti berikut:

var jsonObject = eval("(" jsonFormat ")");

Kenapa tambah kurungan?

Tujuan menambah kurungan adalah untuk memaksa fungsi eval menukar ungkapan dalam kurungan kepada objek dan bukannya melaksanakannya sebagai pernyataan semasa memproses kod JavaScript. Sebagai contoh, ambil objek secara literal {}. Jika tiada kurungan luar ditambahkan, maka eval akan mengenali pendakap sebagai tanda permulaan dan penamat bagi blok kod JavaScript dan {} akan dianggap untuk melaksanakan pernyataan kosong. Jadi dua keputusan pelaksanaan berikut adalah berbeza:

Salin kod Kod adalah seperti berikut:

alert(eval("{}"); // return undefined
alert(eval("({})");// return object[Object]

Di atas adalah keseluruhan kandungan artikel ini, saya harap anda semua menyukainya.

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