Cara Pemisah Baris Boleh Memberi Impak kepada Penyata Pengembalian JavaScript
Fungsi JavaScript boleh menghadapi tingkah laku yang tidak dijangka apabila pemisah baris berlaku antara penyataan kembali dan objek ia cuba untuk kembali. Isu ini timbul disebabkan oleh mekanisme sisipan koma bertitik automatik (ASI) JavaScript.
Contoh Kod:
Pertimbangkan kod berikut:
<code class="javascript">function foo1() { return {msg: "hello1"}; } function foo2() { return {msg: "hello2"}; }</code>
Bila dilaksanakan, kod ini mengeluarkan:
foo1 = {"msg":"hello1"} foo2 = undefined
Penjelasan:
Perbezaan antara fungsi ini ialah dalam foo2, {msg: 'hello2'} diletakkan pada baris baru. JavaScript cenderung untuk menganggap koma bertitik walaupun apabila ia ditinggalkan, menyebabkan pemisah baris ditafsirkan sebagai pemisah pernyataan. Akibatnya, foo2 mengembalikan tidak ditentukan dan bukannya objek yang dimaksudkan.
Penyelesaian:
Untuk mengelakkan isu ini, kod boleh diubah suai untuk mengekalkan objek pada keadaan yang sama baris sebagai penyata pulangan. Sebagai alternatif, operator kumpulan boleh digunakan untuk mentakrifkan objek secara eksplisit sebagai ungkapan dalam fungsi:
<code class="javascript">function foo2() { return ({msg: "hello2"}); }</code>
Dengan perubahan ini, foo2 akan mengembalikan objek yang dikehendaki dengan betul.
Pertimbangan:
Menggunakan operator pengelompokan untuk estetika adalah soal keutamaan peribadi. Ia boleh meningkatkan kebolehbacaan, terutamanya apabila berurusan dengan blok kod yang besar. Walau bagaimanapun, adalah penting untuk ambil perhatian bahawa pengendali kumpulan hanya menilai ungkapan terakhir dalam kumpulan.
Atas ialah kandungan terperinci Bolehkah Line Break Mempengaruhi Penyata Pemulangan JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!