サーチ…
構文
-
// 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には、コード行をコメントする2つの方法があります
一行コメント//
//
後ろの行の終わりまでが実行から除外されます。
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! */
JavaScriptでのHTMLコメントの使用(悪い習慣)
HTMLコメント(オプションで空白文字を前に付けることもできます)は、同じ行にあるコードもブラウザで無視されますが、これは悪い習慣とみなされます。
HTMLコメントの開始シーケンス( <!--
)による1行のコメント:
注: JavaScriptインタプリタはHTMLコメントの終わりの文字(
-->
)をここでは無視します。
<!-- A single-line comment.
<!-- --> Identical to using `//` since
<!-- --> the closing `-->` is ignored.
この手法は、レガシーコードでは、JavaScriptをサポートしていないブラウザから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として第2に呼び出すことを可能にするために悪用されています。例えば:
<!--
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を実行すると、 <!--
と-->
コメントの間のすべての複数行のテキストは無視されるので、HTMLとして実行されるときにそこに含まれるJavaScriptは無視されます。
しかし、JavaScriptのように、 <!--
と-->
始まる行は無視されますが、その効果は複数行にわたってエスケープされないので、それに続く行( self.postMessage(...
)は彼らはJavaScriptのコメントに達する少なくともまで、は、JavaScriptとして実行することにより、マークされたときに無視/*
と*/
。このようなJavaScriptのコメントがされるまで、残りのHTMLテキストを(無視する上記の例で使用されている-->
また、JavaScriptのように無視されています)。