Rumah >hujung hadapan web >tutorial js >Mengapakah href dikendalikan oleh JS semua javascript:void(0);_Pengetahuan asas
1. Saya seorang noob
Separuh kedua tahun ini akan menjadi lebih terburu-buru, jadi saya perlu belajar bersungguh-sungguh dan mengucapkan selamat tinggal kepada pemula. Saya dengan tegas membeli beberapa buku:
Antaranya, perkara pertama yang saya baca ialah "Javascript Pattern" - sebuah buku yang menurut ramai orang mengerikan. ...500 perkataan komen dan renungan ditiadakan... Apabila saya melihat penghujung Bab 2, saya sekali lagi melihat titik "elakkan menggunakan kekosongan dalam JS", yang membangkitkan masalah saya sebagai orang baru soalan: "Memandangkan void
tidak disyorkan dalam JS, mengapakah operasi JS href
di halaman utama Sina Weibo, Taobao dan lain-lain semuanya menggunakan javascript:void(0);
?"
Kenapa? kenapa? Adakah anda menonton? Adakah anda menonton?
2. Keraguan Xiaobai
Tidak kira betapa sukarnya anda merobeknya, anda tidak boleh menunggang kakak saya!Setiap kali saya melihat
, saya masih ingat mimpi ngeri yang saya alami bertahun-tahun yang lalu apabila saya mula-mula bersentuhan dengan bahasa pengaturcaraan C. Satu-satunya subjek yang saya gagal di kolej ialah bahasa C. Ia mengingatkan saya kepada wanita kering itu masa. Seorang pelajar yang baik dan jujur seperti saya, rakan sekelas yang baik yang tidak pernah ke kafe Internet sebelum kolej, tidak menghuraikan terlebih dahulu tentang apa program itu dan untuk apa ia digunakan pada mulanya, dia bercakap tentang pembolehubah, pernyataan, dan XXX, menghadap latar belakang hitam setiap hari Ketuk a, b, c dengan benda pelik Rasanya seperti ditolak ke dasar sungai oleh kanak-kanak yang lebih tua, tercekik air dalam kabut, dan air berada di dalam tanah. Saya teringat kisah yang saya baca semasa saya kecil Seorang lelaki muda yang bersekolah di kawasan luar bandar cukup bertuah kerana pergi ke UK sebagai pelajar pertukaran untuk belajar dan tinggal di rumah orang biasa (yang sememangnya sangat mengalu-alukan. ). Walau bagaimanapun, dalam beberapa hari, lelaki muda itu ditendang keluar - -Alasannya ialah: Anda tidak mengangkat tempat duduk tandas apabila anda kencing, tetapi ada seorang wanita di rumah. Malah, di rumah inilah lelaki muda ini pertama kali melihat tandas. Dia tidak tahu untuk apa tempat duduk tandas itu. void
etos dibawa oleh orang yang mempunyai latar belakang C dan C dalam pengaturcaraan, yang boleh dikesan kembali ke 10 tahun yang lalu... javascript:void(0)
nya, iaitu href
: javascript:;
Ini boleh membuktikan bahawa
sememangnya berlebihan dan tidak berguna, jadi mengapa begitu banyak laman web menggunakan ini? Saya perlu menaip 7 aksara tambahan setiap kali Apakah jenis masalah ini? Mungkinkah prestasi dikira berdasarkan jumlah kod HTML! void(0)
Tidak kira betapa sukarnya anda merobeknya, anda tidak boleh menunggang kakak saya!
Kemudian, saya mempunyai soalan lanjut: Koma bernoktah pada penghujung pernyataan dalam JavaScript boleh ditinggalkan secara lalai, jadi mengapa menggunakan
dan bukannya javascript:;
? javascript:
Pengekod yang taksub tentang kod, tulis sahaja tanda koma bertitik tanpa sebab. Ini bukan banyak pernyataan Jika anda tidak menulis koma bertitik, situasi yang tidak dijangka mungkin berlaku!
Bagi orang seperti saya yang malas sehinggakan tangan saya kejang dan saya berasa tidak selesa untuk menulis walaupun satu watak lagi, saya tidak boleh memikirkannya!
Mungkin ini hanya kerana saya orang baru dan saya tidak faham dunia Ba Shen.
3. Saya seorang noob
Saya telah menggunakan selama bertahun-tahun, tetapi saya selalu menggunakannya dengan gementar kerana orang lain href="javascript:"
Adakah kerana terdapat sebarang masalah yang berpotensi dengan href="javascript:void(0);"
? Sebagai contoh, adakah ia menjejaskan prestasi? Atau membuat orang tidak dapat mengenali tempat duduk tandas? href="javascript:"
Mari buat ringkasan ringkas:
Sila rujuk penerangan tentang kekosongan dalam pautan di bawah:
http://www.jb51.net/w3school/js/pro_js_operators_unary.htm
Untuk soalan di atas, pinjam kod daripada pautan:
<a onclick="fn()">Does not appear as a link, because there's no href</a> <a href="javascript:void(0)" onclick="fn()">fn is called</a> <a href="javascript:undefined" onclick="fn()">fn is called</a> <a href="javascript:" onclick="fn()">fn is called too!</a>
Les trois ci-dessus sont équivalents.
De plus, voici l'explication d'un internaute sur javascript:; et javascript:void(0);
Vous pouvez souvent voir du code comme celui-ci lorsque vous consultez des scripts JavaScript :
〈a href="javascript:doTest2();void(0);"〉ici〈/a〉
Mais que signifie exactement void(0) ici ?
void est un opérateur en JavaScript qui spécifie d'évaluer une expression mais ne renvoie pas de valeur.
Le format d'utilisation de l'opérateur void est le suivant :
1. javascript:void (expression)
2. javascript:expression vide
expression est une expression standard JavaScript à évaluer. Les parenthèses en dehors de l’expression sont facultatives, mais c’est une bonne pratique de les écrire.
Vous pouvez spécifier un lien hypertexte à l'aide de l'opérateur void. L'expression est évaluée mais rien n'est chargé dans le document actuel.
Le code suivant crée un lien hypertexte qui ne fait rien lorsque l'utilisateur clique dessus. Lorsque l'utilisateur clique sur le lien, void(0) est évalué à 0, mais n'a aucun effet sur JavaScript.
La différence entre vide et #
#Contient des informations de localisation. Le point d'ancrage par défaut est #top, qui est le haut de la page Web, et javascript:void(0) ne représente qu'un lien mort.
C'est pourquoi parfois la page est très longue et le lien de navigation est clairement # mais il saute en haut de la page, mais javascript:void(0) n'est pas le cas, il est donc préférable d'utiliser void(0 ) lors de l'appel du script.