JavaScript の実行結果のコメント
- カテゴリ:
- JavaScript
- コメント数:
- Comments: 0
◆ // より --> のほうが結果っぽさがあって見やすいかも
◆ HTML-like Comments という script タグ内に HTML コメント書く場合用の拡張
◆ module だと使えなくなる
◆ HTML-like Comments という script タグ内に HTML コメント書く場合用の拡張
◆ module だと使えなくなる
よく各行の処理の結果をコメントでこういう感じに書いてると思います
これを こうしてみます
構文エラーにもならずちゃんとコメントです
x は 200 ではなくて 100 です
矢印みたいで実行の結果っぽさがあっていいですよね
です
このコメント形式ってなに?というところですが
これをみればわかるはず
そう HTML です
ブラウザ JavaScript では HTML のコメントも扱えます
と言っても ちょっと HTML のとは意味が違いますけど
HTML 的にはコメントアウトされてるものですが JavaScript では実行されています
昔の script タグ使えないブラウザがいた時代に script タグの中身が表示されないように
のように使ってたから JavaScript 側で対応が必要だったということです
「<!--」 や 「-->」 で始まるとコメントになるので後ろには好きに書けますが JavaScript コードのあとに 「<!--」 や 「-->」 を書いても構文エラーです
上のコードが 3 行目で構文エラーがでてるはず
なので ブラウザ以外の JavaScript 実装がサポートしてるとは限りません
node.js ではブラウザと同じエンジン V8 だからか使えました
ちゃんとした構文を知りたいならこっち
HTML-like Comments
ここに書いてるのですが ブラウザでも ES2015 の es modules ではこの HTML-like Comments の拡張は許可されてません
なので module なら使えないってことです
4 ** 4
// 256
parseInt("0123")
// 123
1 + true + "true"
// "2true"
Object.assign({}, {a: 1}, {b: 2})
// Object {a: 1, b: 2}
// 256
parseInt("0123")
// 123
1 + true + "true"
// "2true"
Object.assign({}, {a: 1}, {b: 2})
// Object {a: 1, b: 2}
これを こうしてみます
4 ** 4
--> 256
parseInt("0123")
--> 123
1 + true + "true"
--> "2true"
Object.assign({}, {a: 1}, {b: 2})
--> Object {a: 1, b: 2}
--> 256
parseInt("0123")
--> 123
1 + true + "true"
--> "2true"
Object.assign({}, {a: 1}, {b: 2})
--> Object {a: 1, b: 2}
構文エラーにもならずちゃんとコメントです
let x = 100
--> x = 200
console.log(x)
--> x = 200
console.log(x)
100
x は 200 ではなくて 100 です
矢印みたいで実行の結果っぽさがあっていいですよね
こんな構文あったっけ?
普通 JavaScript の構文でコメントといえば/* comment */
と// comment
です
このコメント形式ってなに?というところですが
これをみればわかるはず
<!-- var not_defined = 1 -->
そう HTML です
ブラウザ JavaScript では HTML のコメントも扱えます
と言っても ちょっと HTML のとは意味が違いますけど
<!--
var defined = 1
-->
console.log(window.defined)
var defined = 1
-->
console.log(window.defined)
1
HTML 的にはコメントアウトされてるものですが JavaScript では実行されています
昔の script タグ使えないブラウザがいた時代に script タグの中身が表示されないように
<script>
<!--
var js_code = null
-->
</script>
<!--
var js_code = null
-->
</script>
のように使ってたから JavaScript 側で対応が必要だったということです
<!-- ここはコメント
--> ここもコメント
console.log(1) --> これはダメ
--> ここもコメント
console.log(1) --> これはダメ
「<!--」 や 「-->」 で始まるとコメントになるので後ろには好きに書けますが JavaScript コードのあとに 「<!--」 や 「-->」 を書いても構文エラーです
上のコードが 3 行目で構文エラーがでてるはず
使えないところ
あくまでブラウザの script タグの中のコードのための機能ですなので ブラウザ以外の JavaScript 実装がサポートしてるとは限りません
node.js ではブラウザと同じエンジン V8 だからか使えました
C:\data>node
> --> 1
undefined
> <!-- aa
undefined
> --> 1
undefined
> <!-- aa
undefined
ちゃんとした構文を知りたいならこっち
HTML-like Comments
ここに書いてるのですが ブラウザでも ES2015 の es modules ではこの HTML-like Comments の拡張は許可されてません
なので module なら使えないってことです