Szukaj…
Składnia
-
// Single line comment (continues until line break)
-
/* Multi line comment */
-
<!-- Single line comment starting with the opening HTML comment segment "<!--" (continues until line break)
-
--> Single line comment starting with the closing HTML comment segment "-->" (continues until line break)
Korzystanie z komentarzy
Aby dodać adnotacje, podpowiedzi lub wykluczyć wykonanie kodu, JavaScript udostępnia dwa sposoby komentowania linii kodu
Komentarz //
Wszystko po //
do końca linii jest wykluczone z wykonania.
function elementAt( event ) {
// Gets the element from Event coordinates
return document.elementFromPoint(event.clientX, event.clientY);
}
// TODO: write more cool stuff!
Komentarz do wielu wierszy /**/
Wszystko między otwarciem /*
a zamknięciem */
jest wykluczone z wykonania, nawet jeśli otwarcie i zamknięcie są na różnych liniach.
/*
Gets the element from Event coordinates.
Use like:
var clickedEl = someEl.addEventListener("click", elementAt, false);
*/
function elementAt( event ) {
return document.elementFromPoint(event.clientX, event.clientY);
}
/* TODO: write more useful comments! */
Używanie komentarzy HTML w JavaScript (zła praktyka)
Komentarze HTML (opcjonalnie poprzedzone białymi znakami) spowodują, że kod (w tym samym wierszu) zostanie również zignorowany przez przeglądarkę, chociaż jest to uważane za złą praktykę .
Komentarze jednowierszowe z sekwencją otwierającą komentarze HTML ( <!--
):
Uwaga: interpreter JavaScript ignoruje tutaj zamykające znaki komentarzy HTML (
-->
).
<!-- A single-line comment.
<!-- --> Identical to using `//` since
<!-- --> the closing `-->` is ignored.
Tę technikę można zaobserwować w starszym kodzie, aby ukryć JavaScript przed przeglądarkami, które go nie obsługują:
<script type="text/javascript" language="JavaScript">
<!--
/* Arbitrary JavaScript code.
Old browsers would treat
it as HTML code. */
// -->
</script>
Komentarz zamykający HTML może być również użyty w JavaScript (niezależnie od komentarza otwierającego) na początku wiersza (opcjonalnie poprzedzony białymi spacjami), w którym to przypadku powoduje również ignorowanie reszty wiersza:
--> Unreachable JS code
Te fakty zostały również wykorzystane, aby strona mogła się nazywać najpierw HTML, a następnie JavaScript. Na przykład:
<!--
self.postMessage('reached JS "file"');
/*
-->
<!DOCTYPE html>
<script>
var w1 = new Worker('#1');
w1.onmessage = function (e) {
console.log(e.data); // 'reached JS "file"
};
</script>
<!--
*/
-->
Po uruchomieniu HTML cały tekst wielowierszowy między komentarzami <!--
i -->
jest ignorowany, więc zawarty w nim JavaScript jest ignorowany, gdy jest uruchamiany jako HTML.
Ponieważ JavaScript jest ignorowany, podczas gdy linie zaczynające się od <!--
i -->
są ignorowane, ich efektem nie jest ucieczka przez wiele linii, więc linie następujące po nich (np. self.postMessage(...
) nie będą ignorowane, gdy są uruchamiane jako JavaScript, przynajmniej do momentu otrzymania komentarza JavaScript , oznaczonego przez /*
i */
. Takie komentarze JavaScript są używane w powyższym przykładzie do zignorowania pozostałego tekstu HTML (aż do -->
który jest również ignorowany jako JavaScript ).