Keluar awal dari fungsi?

Saya mempunyai fungsi:

function myfunction() {
  if (a == 'stop')  // How can I stop the function here?
}

Apakah ada sesuatu seperti `exit () di JavaScript?

Mengomentari pertanyaan (6)
Larutan

Anda hanya dapat menggunakan kembali.

function myfunction() {
     if(a == 'stop') 
         return;
}

Ini akan mengirim kembali nilai undefined untuk apa pun yang disebut fungsi.

var x = myfunction();

console.log( x );  // console shows undefined

Tentu saja, anda dapat menentukan nilai kembali. Apapun nilai yang dikembalikan akan masuk ke console dengan menggunakan contoh di atas.

return false;
return true;
return "some string";
return 12345;
Komentar (8)

Rupanya anda dapat melakukan ini:

function myFunction() {myFunction:{
    console.log('i get executed');
    break myFunction;
    console.log('i do not get executed');
}}

Lihat blok scope melalui penggunaan label: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/label

Saya dapat't melihat kerugian belum. Tapi itu doesn't tampak seperti yang umum digunakan.

Berasal jawaban ini: https://stackoverflow.com/questions/1361437/javascript-equivalent-of-phps-die

Komentar (1)

Ini:

function myfunction()
{
     if (a == 'stop')  // How can I stop working of function here?
     {
         return;
     }
}
Komentar (0)
function myfunction() {
     if(a == 'stop') 
         return false;
}

return false; adalah jauh lebih baik daripada hanya kembali;

Komentar (2)

Menggunakan pendekatan yang berbeda sedikit, anda dapat menggunakan mencoba menangkap, dengan melempar pernyataan.

function name() {
    try {
        ...

        //get out of here
        if (a == 'stop')
            throw "exit";

        ...
    } catch (e) {
        // TODO: handle exception
    }
}
Komentar (0)

jika anda sedang mencari script untuk menghindari mengirimkan formulir ketika beberapa kesalahan yang ditemukan, metode ini harus bekerja

function verifyData(){
     if (document.MyForm.FormInput.value.length == "") {
          alert("Write something!");
     }
     else {
          document.MyForm.submit();
     }
}

mengubah Submit ketik "tombol"

<input value="Save" type="button" onClick="verifyData()">

semoga bantuan ini.

Komentar (0)

Menggunakan kembali akan menghentikan fungsi dan kembali undefined, atau nilai yang anda tentukan dengan perintah.

function myfunction(){
    if(a=="stop"){
        //return undefined;
        return; /** Or return "Hello" or any other value */
    }
}
Komentar (0)

Aku tidak suka menjawab hal-hal yang tidak't solusi nyata...

...tapi ketika saya mengalami masalah yang sama, saya membuat pemecahan masalah di bawah ini:

function doThis() {
  var err=0
  if (cond1) { alert('ret1'); err=1; }
  if (cond2) { alert('ret2'); err=1; }
  if (cond3) { alert('ret3'); err=1; }
  if (err < 1) {
    // do the rest (or have it skipped)
  }
}

Berharap hal ini dapat berguna bagi siapa saja.

Komentar (3)

exit(); dapat digunakan untuk pergi untuk selanjutnya validasi.

Komentar (1)

Jika anda menggunakan jquery. Ini harus menghentikan fungsi dari menggelegak untuk jadi orang tua memanggil fungsi ini harus berhenti juga.

  function myfunction(e)
  {
       e.stopImmediatePropagation();
       ................
  }
Komentar (1)

jenis acak perintah yang melempar kesalahan, misalnya:

exit

atau

die:-)
Komentar (2)