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

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

Susan Sarandon
Lepaskan: 2024-11-05 12:07:01
asal
377 orang telah melayarinya

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan