Pemusnahan Objek Tanpa Pengisytiharan Pembolehubah
Dalam JavaScript, pemusnahan objek boleh digunakan untuk mengekstrak sifat daripada objek. Walau bagaimanapun, menggunakan penstrukturan objek tanpa pengisytiharan pembolehubah sebelumnya (seperti var, let, atau const) boleh mengakibatkan SyntaxError.
Ini kerana pengendali {...} boleh mempunyai pelbagai makna dalam JavaScript. Apabila ia muncul pada permulaan pernyataan, ia mewakili blok, yang tidak boleh ditugaskan. Tetapi apabila ia muncul kemudian dalam pernyataan sebagai ungkapan, ia mewakili objek.
Contoh berikut melemparkan ralat kerana {a, b} ditafsirkan sebagai blok dan bukannya objek:
{a, b} = {a: 1, b: 2};
Untuk mengelakkan ralat ini, anda boleh menggunakan kurungan untuk mengumpulkan ungkapan {a, b}:
( {a, b} = {a: 1, b: 2} );
Sebagai alternatif, anda boleh menggunakan pengisytiharan pembolehubah:
var {a, b} = {a: 1, b: 2};
Mengenai soalan bonus, pemusnahan tatasusunan tidak memerlukan perisytiharan pembolehubah sebelumnya kerana kurungan segi empat sama sentiasa ditafsirkan sebagai ungkapan, tidak seperti pendakap kerinting. Oleh itu, contoh berikut adalah sah:
[c, d] = [1, 2];
Dalam contoh fungsi yang disediakan, ungkapan {a, b} ditafsirkan sebagai blok kerana ia muncul pada permulaan pernyataan. Akibatnya, a dan b tidak boleh ditugaskan semula kepada nilai baharu dalam blok.
Atas ialah kandungan terperinci Mengapa JavaScript Membuang SyntaxError Apabila Menggunakan Pemusnahan Objek Tanpa Pengisytiharan Pembolehubah?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!