Rumah  >  Artikel  >  hujung hadapan web  >  Mengapa Talian Terputus Selepas Pernyataan `return` Menyebabkan `undefined` dalam JavaScript?

Mengapa Talian Terputus Selepas Pernyataan `return` Menyebabkan `undefined` dalam JavaScript?

Susan Sarandon
Susan Sarandonasal
2024-11-05 12:07:01346semak imbas

Why Does a Line Break After a `return` Statement Cause `undefined` in JavaScript?

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!

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