Поиск…
Синтаксис
-
// 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)
Использование комментариев
Чтобы добавить аннотации, подсказки или исключить выполнение какого-либо кода, JavaScript предоставляет два способа комментирования строк кода
Отдельная строка Комментарий //
Все после //
до конца строки исключается из исполнения.
function elementAt( event ) {
// Gets the element from Event coordinates
return document.elementFromPoint(event.clientX, event.clientY);
}
// TODO: write more cool stuff!
Многострочный комментарий /**/
Все между открытием /*
и закрытием */
исключается из исполнения, даже если открытие и закрытие находятся на разных линиях.
/*
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! */
Использование комментариев HTML в JavaScript (Плохая практика)
Комментарии HTML (необязательно предшествующие пробелам) заставят код (в той же строке) также игнорировать браузер, хотя это считается плохой практикой .
Однострочные комментарии с последовательностью открытия комментария HTML ( <!--
):
Примечание: интерпретатор JavaScript игнорирует закрывающие символы комментариев HTML (
-->
) здесь.
<!-- A single-line comment.
<!-- --> Identical to using `//` since
<!-- --> the closing `-->` is ignored.
Этот метод можно наблюдать в устаревшем коде, чтобы скрыть JavaScript от браузеров, которые его не поддерживали:
<script type="text/javascript" language="JavaScript">
<!--
/* Arbitrary JavaScript code.
Old browsers would treat
it as HTML code. */
// -->
</script>
Комментарий закрытия HTML также может быть использован в JavaScript (независимо от открытого комментария) в начале строки (необязательно предшествует пробелу), и в этом случае это также приводит к игнорированию остальной части строки:
--> Unreachable JS code
Эти факты также были использованы для того, чтобы страница могла называть себя сначала как HTML, а во-вторых, как JavaScript. Например:
<!--
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>
<!--
*/
-->
При запуске HTML весь многострочный текст между комментариями <!--
и -->
игнорируется, поэтому содержащийся в нем JavaScript игнорируется при запуске как HTML.
Однако, как и JavaScript, в то время как строки, начинающиеся с <!--
и -->
, игнорируются, их эффект заключается не в том, чтобы выходить на несколько строк, поэтому строки, следующие за ними (например, self.postMessage(...
) не будут игнорируются при запуске как JavaScript, по крайней мере до тех пор, пока они не достигнут комментария JavaScript , помеченного /*
и */
. Такие комментарии JavaScript используются в приведенном выше примере, чтобы игнорировать оставшийся текст HTML (до тех пор, пока -->
который также игнорируется как JavaScript ).