• ベストアンサー

「\マーク」で表示される部分の意味は?(JavaScript)

JavaScript の独習を始めたところなんですが、 あるスクリプトを解読しようとしていましたら、以下のように「\ マーク」がいくつも現れる部分が出てきました。 どうも外国で書かれたスクリプトのようで、 Netscape Communicator で文字コードを「欧米(ISO-8859-1)」に切り替えてソース表示してみましたら、 その部分は、「逆スラッシュ」で表示されました。 こういった部分については、JavaScriptの文法ではどのように理解しておけばいいんでしょうか? それと、見やすいように普通のスクリプトに書き替えたりというようなことはできますでしょうか? ---------- <SCRIPT language="JavaScript1.2">   …… document.write("<div id=\"dot"+ i +"\" style=\"POSITION: absolute; Z-INDEX: "+ i +"; VISIBILITY: visible; TOP: 500px; LEFT: 15px;\"><img src=\"" + balloon[j] + "\" border=\"0\"></div>");   …… </SCRIPT>

質問者が選んだベストアンサー

  • ベストアンサー
  • kokucho81
  • ベストアンサー率61% (157/255)
回答No.1

スラッシュと¥マークは同じです。 ¥マークを外国フォントで見るとスラッシュになり、スラッシュを日本語フォントで見ると、円マークになるだけです。 ¥マークをいれるのは、ダブルコーテーション「””」と関係しています。 ご存知のように、”は、文字列などを開始するときに「”」を使用して、閉じるときにも「”」を使用するのですが、ではこの「”」から「”」の間に「”」という文字を表示する場合はどうするのでしょうか? ■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□ □■ ■ たとえば、「”」という文字を表示したい! □ document.write(" " "); あれ? これじゃ1個目と2個目で文字列が閉じちゃうので、3個目はエラーだな~、ああそっか~。 document.write(" \" "); こういうふうにすると、2個目の「"」はタダの文字と解釈されるから、文字列を勝手にとじちゃうという現象を回避できるのか~ ■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□ このように普通に¥マークを使用せずに書いてしまうと、文字列を閉じてしまうことになります。 このような困った現象を回避するために、\"という書き方(文法的な意味で解釈せずに、そのまんまただの文字「”」として解釈してくれが用意されています。 ¥マークを極力するなくしたい場合には、シングルクォーテーションを使用すれば良いと思います。 今「\"」という2つの組み合わせを「'」という文字に変えればうまく行くと思います。 ダブルコーテーションの中に、シングルコーテーションがあることや、シングルコーテーションの中に、ダブルコーテーションがあることは¥を使用せずともちゃんと思い通り解釈されます。 問題となるのは、ダブルコーテーションの中にダブルコーテーションを使う場合や、シングルコーテーションの中に、シングルコーテーションを使う場合などです。

mayapapa
質問者

お礼

懇切で分りやすいご説明をいただいて、おかげさまで、今回おたずねした点については全て解決しました。 大変ありがとうございました。 『 ¥マークをなくしたい場合には、「\"」という2つの組み合わせを「'」という文字に変えれば 』 というやり方についても、実際に試してみまして、それでうまくいくことが分りました。

その他の回答 (3)

noname#3852
noname#3852
回答No.4

 これはJavaScript文法上、エスケープシーケンスといわれるもので、「\"」の2文字セットで「"」という文字を表します。「"」単独では、文字列の区切りを意味するため、「"」という文字そのものを扱いたい場合、直前に「\」をつけます。  また、『「欧米(ISO-8859-1)」に切り替えてソース表示してみましたら、 その部分は、「逆スラッシュ」』とありますが、一般の欧米環境での「逆スラッシュ」と日本語環境での「¥」は、同じ文字コードが割り当てられていて、利用する環境によって表す文字が違うことになります。  補足ですが、エスケープシーケンスには他に、改行を意味する「\n」、タブ文字を意味する「\t」などがあります。

mayapapa
質問者

お礼

エスケープシーケンスについて解説いただいて、ありがとうございました。 「\"」の2文字がセットということには気付きませんでした。

  • zooom
  • ベストアンサー率37% (43/115)
回答No.3

「エスケープ文字」なんて呼び方をします。 つまり、「\」の次にくる「"」は普通に表示したい文字であって、 プログラムとしては理解しないでね~ って感じの意味です。

mayapapa
質問者

お礼

早速の回答をありがとうございました。

  • kan_j
  • ベストアンサー率0% (0/1)
回答No.2

文字列「"」を表示させる意味だと思いますが?

mayapapa
質問者

お礼

早速の回答をありがとうございました。

関連するQ&A