Saya memiliki fungsi:
function myfunction() {
if (a == 'stop') // How can I stop the function here?
}
Apakah ada sesuatu seperti exit()
di JavaScript?
javascript
Simon
sumber
sumber
for
loop. Meski begitu, saya tidak tahu mengapa metode yang disarankan akan digunakan, ketika Anda bisa meneleponbreak;
. Untuk menggunakan contoh dari artikel:if(i==5) break;
Menggunakanreturn
akan menghentikan eksekusi fungsi, apakah Anda dalam satufor
lingkaran atau tidak .return
akan menghentikan eksekusi fungsi, yang tampaknya seperti yang Anda tanyakan.Jawaban:
Anda bisa menggunakannya
return
.Ini akan mengirim nilai kembali
undefined
ke apa pun yang disebut fungsi.Tentu saja, Anda dapat menentukan nilai pengembalian yang berbeda. Nilai apa pun yang dikembalikan akan dicatat ke konsol menggunakan contoh di atas.
sumber
undefined
, dan itulah yang diberikan solusi utama saya. Artikel yang Anda referensikan berbicara tentang melakukanreturn false
di penangan event jQuery. Itu masalah yang sama sekali berbeda. Ini adalah cara yang tepat untuk keluar dari fungsi JavaScript. Jelas jika pemanggil bergantung pada nilai yang dikembalikan, nilai perlu didefinisikan dengan tepat.if(a != 'stop') { /* run my code */ }
agar kode hanya berjalan ketikaa
tidak sama'stop'
tanpa memberikan eksplisitreturn
. Tetapi nilai pengembaliannya identik dengan solusi saya . Dalam kedua kasus,undefined
akan dikembalikan.undefined
(atau tidak menerima nilai lain) sebagai nilai balik, maka Anda harus menyesuaikan dengan spesifikasi API itu, dan mengembalikan nilai yang benar. Umumnya untuk sistem penanganan acara, itu akan diharapkanundefined
sebagai indikasi sederhana bahwa pawang telah selesai, dan tidak ada instruksi lebih lanjut. Dengan jQuery,return false;
memiliki makna khusus memberikan instruksi untuk melakukanpreventDefault
danstopPropagation
.Rupanya Anda bisa melakukan ini:
Lihat blokir lingkup melalui penggunaan label: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/label
Saya belum melihat kelemahannya. Tapi sepertinya itu bukan penggunaan umum.
Berasal dari jawaban ini: JavaScript setara dengan dadu PHP
sumber
return false;
jauh lebih baik dari pada adilreturn;
sumber
false
lebih baik Saya akan mengatakan defaultundefined
lebih baik dalam kasus generik. Apa pun itu, Anda benar mengatakan bahwa sering kali lebih baik mengembalikan nilai yang berarti.false
daripadaundefined
.Ini:
sumber
Menggunakan pendekatan yang sedikit berbeda, Anda dapat menggunakan
try catch
, dengan pernyataan melempar.sumber
Jika Anda mencari skrip untuk menghindari mengirimkan formulir ketika beberapa kesalahan ditemukan, metode ini harus berfungsi
ubah jenis Tombol Kirim ke "tombol"
semoga ini membantu.
sumber
Menggunakan a
return
akan menghentikan fungsi dan kembaliundefined
, atau nilai yang Anda tentukan dengan perintah kembali.sumber
Saya tidak suka menjawab hal-hal yang bukan solusi nyata ...
... tetapi ketika saya mengalami masalah yang sama ini, saya membuat solusi di bawah ini:
Semoga bermanfaat bagi siapa saja.
sumber
Saya pikir melempar kesalahan baru adalah pendekatan yang baik untuk menghentikan eksekusi daripada hanya mengembalikan atau mengembalikan yang salah. Misalnya Saya memvalidasi sejumlah file yang hanya saya izinkan maksimum lima file untuk diunggah dalam fungsi terpisah.
Tapi saya memanggil fungsi ini dari fungsi aliran utama sebagai
Dalam contoh di atas saya tidak dapat menghentikan eksekusi kecuali jika saya melempar Error baru. Hanya mengembalikan atau mengembalikan false only berfungsi jika Anda berada dalam fungsi utama eksekusi jika tidak maka tidak akan berhasil.
sumber
keluar(); bisa digunakan untuk validasi berikutnya.
sumber
Jika Anda menggunakan jquery. Ini harus menghentikan fungsi dari menggelegak sehingga fungsi induk yang memanggil ini juga harus berhenti.
sumber
stopImmediatePropagation()
bukan hal jQuery, dan menghentikan propagasi tidak sama dengan keluar dari suatu fungsi.ketikkan sembarang perintah yang menimbulkan kesalahan, misalnya:
atau
sumber