質問するログイン新規登録

回答編集履歴

1

SyntaxError: Unexpected token \(

2017/05/01 15:24

投稿

think49
think49

スコア18194

answer CHANGED
@@ -1,11 +1,11 @@
1
- # innerHTML の仕様
1
+ ### innerHTML の仕様
2
2
 
3
3
  「空要素を `innerHTML` で書き換えようとした場合の仕様上の動作はどうなっているのか」と思って確認してみましたが、HTML では特に言及がないですね。
4
4
  XML文書なら `"InvalidStateError" DOMException` を返すかもしれませんが…。
5
5
 
6
6
  - [2.3 Extensions to the Element interface - DOM Parsing and Serialization](https://w3c.github.io/DOM-Parsing/#extensions-to-the-element-interface)
7
7
 
8
- # innerHTML がダメなら outerHTML を使えばいいじゃない
8
+ ### innerHTML がダメなら outerHTML を使えばいいじゃない
9
9
 
10
10
  完全にネタコードですが。
11
11
 
@@ -41,13 +41,13 @@
41
41
  </script>
42
42
  ```
43
43
 
44
- # innerHTML で文字列を挿入する是非について
44
+ ### innerHTML で文字列を挿入する是非について
45
45
 
46
46
  `innerHTML` はHTMLタグを上書き挿入するプロパティであって、文字列を挿入するのには適していません。
47
47
  innerHTML は `<>&` をエスケープしなければ、文字列として挿入できません。
48
48
  文字列を挿入するのなら、`textContent` や `createTextNode()` を使用して下さい。
49
49
 
50
- # HTMLInputElement.prototype.value
50
+ ### HTMLInputElement.prototype.value
51
51
 
52
52
  input要素ノードは `HTMLInputElement` を継承している為、`HTMLInputElement.prototype.value` を使用できます。
53
53
  `HTMLInputElement.prototype.value` は `innerHTML` と違い、`<>&` をエスケープする必要がありません。
@@ -55,4 +55,15 @@
55
55
 
56
56
  - [HTMLInputElement - Web API インターフェイス | MDN](https://developer.mozilla.org/ja/docs/Web/API/HTMLInputElement)
57
57
 
58
+ ### SyntaxError: Unexpected token (
59
+
60
+ > ```JavaScript
61
+ > function () {
62
+ > document.getElementById("super").innerHTML = "こんにちは";
63
+ > }
64
+ > ```
65
+
66
+ 上記コードは関数宣言でも関数式でもない為、`SyntaxError` の例外を返します。
67
+ 関数宣言は名前が必須であり、**関数式は function キーワードから始まる事は出来ません**。
68
+
58
69
  Re: revoiot さん