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

回答編集履歴

2

補足説明の追記

2019/11/08 22:36

投稿

AkitoshiManabe
AkitoshiManabe

スコア5434

answer CHANGED
@@ -11,7 +11,7 @@
11
11
  2. シングルクォートは変数展開できない。
12
12
 
13
13
  JavaScript では2つとも変数展開する機能は無く、違いも無いように感じますが、
14
- 質問コードのように、innerHTML用に与える文字列を生成する場合、属性部分にダブルクォートを含む文字列とるため、エスケープ箇所が増えてしまいます。
14
+ 質問コードのように、innerHTML用に与える文字列を生成する場合、属性部分にダブルクォートを含む文字列とるため、エスケープ箇所が増えてしまいます。
15
15
  ですから、JavaScript では シングルクォートで統一するといいよね。って習慣もありました。
16
16
  また、バッククォートも使えるようになった最近のjavascript では乱暴に言うと変数展開できます。
17
17
 
@@ -22,4 +22,11 @@
22
22
  tag+=`<img src="num${i}.gif" />`; // バッククォート
23
23
  ```
24
24
 
25
- だんだんと簡潔に書けるようになっています。
25
+ だんだんと簡潔に書けるようになっています。
26
+
27
+ 追記)
28
+ 質問コードはHTML属性値の記述は**シングルクォートでも認識される**ためですね。
29
+ ```
30
+ tag+='<img src="num' + i + '.gif" />'; // シングルクォート
31
+ tag+="<img src='num" + i + ".gif' />"; // 質問のコード
32
+ ```

1

若干の修正。(日本語がオカシカッタため)

2019/11/08 22:36

投稿

AkitoshiManabe
AkitoshiManabe

スコア5434

answer CHANGED
@@ -11,7 +11,7 @@
11
11
  2. シングルクォートは変数展開できない。
12
12
 
13
13
  JavaScript では2つとも変数展開する機能は無く、違いも無いように感じますが、
14
- 質問コードのように、innerHTML用に与える文字列を生成したりする場合、属性部分にダブルクォートを含む文字列とめ、エスケープ箇所が増えてしまいます。
14
+ 質問コードのように、innerHTML用に与える文字列を生成する場合、属性部分にダブルクォートを含む文字列とるため、エスケープ箇所が増えてしまいます。
15
15
  ですから、JavaScript では シングルクォートで統一するといいよね。って習慣もありました。
16
16
  また、バッククォートも使えるようになった最近のjavascript では乱暴に言うと変数展開できます。
17
17
 
@@ -22,4 +22,4 @@
22
22
  tag+=`<img src="num${i}.gif" />`; // バッククォート
23
23
  ```
24
24
 
25
- 簡潔に書けるようになっています。
25
+ だんだんと簡潔に書けるようになっています。