Memahami Penyata Pemulangan dalam JavaScript: Mengapa Pemecahan Baris Boleh Merumitkan
Dalam JavaScript, penyataan pemulangan digunakan untuk menamatkan pelaksanaan fungsi dan mengembalikan nilai kepada konteks panggilan. Walau bagaimanapun, tingkah laku pelik timbul apabila nilai pulangan diletakkan pada baris baharu.
Isu: Penyata Pemulangan Patah
Pertimbangkan coretan kod berikut:
<code class="javascript">function correct() { return 15; } function wrong() { return 15; } console.log("correct() called : " + correct()); console.log("wrong() called : " + wrong());</code>
Dalam contoh ini, fungsi correct() mengembalikan nilai jangkaan 15, manakala fungsi wrong() mengembalikan undefined. Ini mengejutkan kerana dalam kebanyakan bahasa lain, penyataan pemulangan diikuti dengan baris baharu masih akan mengembalikan nilai yang betul.
Sebab: Sisipan Koma Bertitik Automatik JavaScript
kunci untuk memahami tingkah laku ini terletak pada ciri sisipan titik bertitik automatik (ASI) JavaScript. ASI ialah mekanisme yang membenarkan JavaScript memasukkan koma bertitik secara automatik pada aksara baris baharu tertentu untuk memastikan pelaksanaan kod yang sah.
Apabila penyataan kembali dalam wrong() diikuti dengan baris baharu, ASI menganggapnya sebagai penyataan berasingan. Akibatnya, kod ditafsirkan sebagai:
<code class="javascript">function wrong() { return; 15; }</code>
Memandangkan pernyataan pertama (return;) tidak mengembalikan nilai, fungsi wrong() kembali tidak ditentukan.
Penyelesaian: Membungkus Nilai Pulangan dalam Kurungan
Untuk memastikan nilai pulangan dikembalikan dengan betul walaupun pada baris baharu, adalah perlu untuk membungkusnya dalam kurungan. Dengan melakukan ini, ASI dihalang daripada memasukkan koma bertitik dan pernyataan pulangan kekal sah.
<code class="javascript">function wrong() { return( 15); }</code>
Dalam kes ini, kurungan menunjukkan bahawa nilai pulangan adalah sebahagian daripada pernyataan pulangan. ASI tidak memasukkan koma bertitik, dan fungsi wrong() kini mengembalikan 15 seperti yang dimaksudkan.
Atas ialah kandungan terperinci Mengapa Talian Terputus Selepas Pernyataan `return` Menyebabkan `undefined` dalam JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!