Saya mencoba untuk beralih melalui berbagai elemen. Dokumentasi jQuery mengatakan:
Mengembalikan non-salah adalah sama dengan pernyataan melanjutkan dalam loop untuk, itu akan langsung melompat ke iterasi berikutnya.
Saya sudah mencoba memanggil 'kembali tidak palsu;' dan 'tidak salah;' (sans return) tidak ada yang melompat ke iterasi berikutnya. Sebagai gantinya, mereka memutus loop. Apa yang saya lewatkan?
javascript
jquery
iteration
Josh
sumber
sumber
Jawaban:
Yang mereka maksud dengan non-false adalah:
Jadi kode ini:
akan log
one
,two
,four
,five
.sumber
Dengan 'return non-false', mereka bermaksud mengembalikan nilai apa pun yang tidak akan berhasil menjadi boolean false. Sehingga Anda bisa kembali
true
,1
,'non-false'
, atau apapun yang Anda bisa memikirkan.sumber
Jenis Javascript memiliki ide 'kebenaran' dan 'kepalsuan'. Jika suatu variabel memiliki nilai maka, umumnya 9 seperti yang Anda akan lihat) itu memiliki 'kebenaran' - nol, atau tidak ada nilai cenderung 'kepalsuan'. Cuplikan di bawah ini dapat membantu:
Semoga itu bisa membantu?
Juga, ada baiknya memeriksa video ini dari Douglas Crockford
pembaruan: terima kasih @cphpython karena telah menemukan tautan yang rusak - Saya telah memperbarui untuk menunjukkan versi yang berfungsi sekarang
Bahasa Javascript
Javascript - Bagian Yang Baik
sumber
0
juga merupakan nilai palsu dan negasinya benar (dan sebaliknya ke nomor lain, misalnya!-42 === false
).Jangan lupa bahwa Anda kadang-kadang bisa saja jatuh dari ujung blok untuk sampai ke iterasi berikutnya:
Daripada benar-benar kembali seperti ini:
sumber
Loop hanya terputus jika Anda kembali secara harfiah
false
. Ex:Ini berarti Anda dapat mengembalikan apa pun, termasuk
undefined
, yang merupakan apa yang Anda kembalikan jika Anda tidak mengembalikan apa pun, sehingga Anda cukup menggunakan pernyataan pengembalian yang kosong:Mungkin ini dapat bervariasi menurut versi; ini berlaku untuk jquery 1.12.4. Tapi sungguh, ketika Anda keluar dari bagian bawah fungsi, Anda juga tidak mengembalikan apa-apa, dan itu sebabnya loop terus, jadi saya berharap bahwa tidak ada kemungkinan apa pun yang mengembalikan apa-apa tidak dapat melanjutkan loop. Kecuali mereka ingin memaksa semua orang untuk mulai kembali sesuatu untuk menjaga loop pergi, kembali tidak memiliki menjadi cara untuk menjaga itu terjadi.
sumber
jQuery.noop () dapat membantu
sumber