Heim >Web-Frontend >js-Tutorial >Warum sind die von JS betriebenen Hrefs alle javascript:void(0);_Grundkenntnisse
1. Ich bin ein Neuling
Die zweite Jahreshälfte wird viel ungestümer, daher muss ich fleißig lernen und mich von den Neulingen verabschieden. Ich habe mir entschlossen ein paar Bücher gekauft:
Unter ihnen war das erste, was ich las, „Javascript Pattern“ – ein Buch, das viele Leute für schrecklich halten. ... 500 Wörter Kommentare und Überlegungen wurden weggelassen ... Als ich das Ende von Kapitel 2 sah, wurde mir erneut klar, dass „die Verwendung von Leerzeichen in JS vermieden werden sollte“, was mir als langjähriger Anfänger Probleme bereitete Frage: „Da void
in JS nicht empfohlen wird, warum verwenden die JS-Operationen von href
auf den Homepages von Sina Weibo, Taobao und anderen alle javascript:void(0);
?“
Warum? Warum? Schaust du zu? Schaust du zu?
2. Xiaobais Zweifel
Egal wie sehr du es zerreißt, du kannst nicht auf meiner Schwester reiten! Du kannst mich nicht abreißen, wenn du auf meiner Schwester reiten willst!Jedes Mal, wenn ich
sehe, erinnere ich mich an den Albtraum, den ich vor vielen Jahren hatte, als ich zum ersten Mal mit der Programmiersprache C in Berührung kam. Das einzige Fach, in dem ich im College durchgefallen bin, war C-Sprache. Es erinnert mich jedes Mal an diese trockene Frau Zeit. Ein guter und ehrlicher Student wie ich, ein guter Klassenkamerad, der vor dem College noch nie in einem Internetcafé war, erklärt zunächst nicht, was das Programm ist und wofür es verwendet wird. Am Anfang spricht er über Variablen, Aussagen usw XXX, jeden Tag mit seltsamen Dingen auf den schwarzen Hintergrund zu klopfen. Es fühlt sich an, als würde man als Kind von einem älteren Kind auf den Grund eines Flusses gestoßen und am Wasser erstickt im Nebel, und das Wasser ist im Boden. Ich erinnerte mich an eine Geschichte, die ich als Kind gelesen hatte. Ein junger Mann, der in einer ländlichen Gegend zur Schule ging, hatte das Glück, als Austauschschüler nach Großbritannien zu gehen, um dort zu studieren und im Haus eines gewöhnlichen Menschen zu leben (was natürlich sehr einladend war). ) Allerdings wurde der junge Mann innerhalb weniger Tage rausgeschmissen – Der Grund ist: Du hebst nicht einmal den Toilettensitz an, wenn du pinkelst, aber da ist eine Dame zu Hause. Das ist so respektlos! Tatsächlich sah dieser junge Mann in diesem Haus zum ersten Mal eine Toilette. Er hatte keine Ahnung, wozu der Toilettensitz gedacht war. Er musste ihn anheben, wenn er pinkelte. void
-Ethos von Leuten mit C- und C-Hintergrund in der Programmierung ins Leben gerufen wird, der bis vor 10 Jahren zurückverfolgt werden kann... javascript:void(0)
-Wert angesehen, der href
war: javascript:;
Dies kann beweisen, dass
tatsächlich überflüssig und nutzlos ist. Warum verwenden so viele Websites dies? Ich muss jedes Mal 7 zusätzliche Zeichen eingeben. Was ist das für ein Problem? Könnte es sein, dass die Leistung auf der Grundlage der Menge an HTML-Code berechnet wird? void(0)
Egal wie sehr du es zerreißt, du kannst nicht auf meiner Schwester reiten! Du kannst mich nicht abreißen, wenn du auf meiner Schwester reiten willst!
Dann habe ich noch weitere Fragen: Das Semikolon am Ende der Anweisung in JavaScript kann standardmäßig weggelassen werden, warum also
anstelle von javascript:;
verwenden? javascript:
Programmierer, die von Code besessen sind, schreiben einfach ohne Grund ein zusätzliches Semikolon. Der heilige Geist der Weltmeisterschaft ist getrübt. Das sind nicht viele Anweisungen. Wenn Sie kein Semikolon schreiben, kann es zu unerwarteten Situationen kommen!
Für Leute wie mich, die so faul sind, dass meine Hände verkrampfen und es mir unangenehm ist, auch nur einen weiteren Charakter zu schreiben, kann ich einfach nicht darüber nachdenken!
Vielleicht liegt es nur daran, dass ich ein Neuling bin und die Welt von Ba Shen nicht verstehe.
3. Ich bin ein Neuling
Ich benutze seit vielen Jahren, aber ich habe es immer mit Bedenken verwendet, weil andere href="javascript:"
sind. Liegt es daran, dass es potenzielle Probleme mit href="javascript:void(0);"
gibt? Beeinträchtigt es beispielsweise die Leistung? Oder Menschen unfähig machen, den Toilettensitz zu erkennen? href="javascript:"
Machen wir eine einfache Zusammenfassung:
Bitte beachten Sie die Beschreibung der Nichtigkeit im folgenden Link:
http://www.jb51.net/w3school/js/pro_js_operators_unary.htm
Für die obige Frage leihen Sie sich den Code über den Link aus:
<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>
Tiga di atas adalah setara.
Selain itu, berikut ialah penjelasan netizen tentang javascript:; dan javascript:void(0);
Anda selalunya boleh melihat kod seperti ini apabila melihat skrip JavaScript:
〈a href="javascript:doTest2();void(0);"〉di sini〈/a〉
Tetapi apakah sebenarnya yang dimaksudkan dengan void(0) di sini?
void ialah operator dalam JavaScript yang menentukan untuk menilai ungkapan tetapi tidak mengembalikan nilai.
format penggunaan operator batal adalah seperti berikut:
1. javascript:void (ungkapan)
2. javascript:void expression
ungkapan ialah ungkapan standard JavaScript untuk dinilai. Tanda kurung di luar ungkapan adalah pilihan, tetapi adalah amalan yang baik untuk menulisnya.
Anda boleh menentukan hiperpautan menggunakan operator void. Ungkapan dinilai tetapi tiada apa yang dimuatkan ke dalam dokumen semasa.
Kod berikut mencipta hiperpautan yang tidak melakukan apa-apa apabila pengguna mengklik padanya. Apabila pengguna mengklik pautan, void(0) menilai kepada 0, tetapi tidak mempunyai kesan pada JavaScript.
Perbezaan antara kosong dan #
#Mengandungi maklumat lokasi Titik utama lalai ialah #atas, iaitu bahagian atas halaman web dan javascript:void(0) hanya mewakili pautan mati.
Inilah sebabnya kadangkala halaman itu sangat panjang dan pautan penyemakan imbas jelas # tetapi ia melompat ke bahagian atas halaman, tetapi javascript:void(0) tidak begitu, jadi sebaiknya gunakan void(0) ) apabila memanggil skrip.