JavaScriptの文字列は、ダブルクォーテーション(")、もしくはシングルクォーテーション(')を用いて、以下のように表します。○ document.write("ABC"); ○ document.write('ABC');ダブルクォーテーション(")の中でシングルクォーテーション(')を使いたい時、またはその逆の場合は、普通に記述して構いません。○ document.write("<FONT COLOR='red'>ABC</FONT>"); ○ document.write('<FONT COLOR="red">ABC</FONT>');しかし、ダブルクォーテーション(")の中でダブルクォーテーション(")を、シングルクォーテーション(')の中でシングルクォーテーション(')を使うと、JavaScriptエラーになってしまいます。× document.write("<FONT COLOR="red">ABC</FONT>"); × document.write('<FONT COLOR='red'>ABC</FONT>');これは、ダブルクォーテーション(")の中ではダブルクォーテーション(")が、シングルクォーテーション(')の中ではシングルクォーテーション(')が「文字列の終わり」という特別な意味をもっているからです。このように、特別な意味をもつ文字をメタ文字と呼びます。では、ダブルクォーテーション(")の中にシングルクォーテーション(')があり、その中にもうひとつクォーテーションを書きたい場合はどうすればいいでしょうか?
× document.write("<XXX onClick='alert("ABC")'"); × document.write("<XXX onClick='alert('ABC')'");この時には、ダブルクォーテーション(")やシングルクォーテーション(')の前にバックスラッシュ(\)を記述します。○ document.write("<XXX onClick='alert(\"ABC\")'"); ○ document.write("<XXX onClick='alert(\'ABC\')'");バックスラッシュ(\)もメタ文字のひとつであり、「次に続くメタ文字の意味を打ち消す」という意味があります。これを、「バックスラッシュ(\)でエスケープする」と言います。バックスラッシュ(\)自身を書きたい時は、バックスラッシュ(\)をふたつ書きます。○ document.write("バックスラッシュ(\\)自身を・・・");こうしたクォーテーションの規則は、HTMLの属性値を指定する個所やPerlによる文字列を記述する部分でも同様(若干規則が異なりますが・・・)の規則があります。