りな塾 #7 エスケープ文字
さて、文字を扱っているといろいろ疑問が浮かんでくると思います。
文字を「"(ダブルクオート)」で囲むとするなら、、、あれ?ダブルクオートそのものはどうやって書けばいいんだろう?
今回は、プログラムそのものではなく、プログラムで扱う文字について特殊なケースを紹介します。
文字に「"」を含める
さっそく、文字に「"」を含めたい場合どうすればよいか。
一時間目の授業は"算数"です。
このような文字を単純にダブルクオートでくくると、エラーになります。
【ERROR】
"一時間目の授業は"算数"です。"
"一時間目の授業は" + "です。" の部分が「"」で囲まれてしまうので、その間に挟まった部分をどう扱ってよいのかわからずエラーになります。
エスケープ文字
このようなときに使うのがエスケープ文字です。
「\(バックスラッシュ)」がエスケープ文字として扱われます。
使い方を見てみましょう。
"一時間目の授業は\"算数\"です。"
「"」の直前にエスケープ文字を入れることで、プログラムで制御される「"」の意味を打ち消しています。
このようにプログラムで扱う制御文字から "逃れる(エスケープ)" ので、エスケープ文字といいます。
バックスラッシュを文字に含めたいときも同様です。 エスケープ文字自体からエスケープしてますwww
一時間目の授業は\\算数\\です。
バックスラッシュの入力:
Windowsの場合、キーボードの¥で「\」の入力ができます。
Macの場合、キーボードで alt + ¥ で「\」の入力ができます。
言語によってどの文字がエスケープ文字として扱われるのかは多少異なるので、エスケープ文字という言葉も覚えておくとよいでしょう。エスケープ文字で検索するとすぐにヒットすると思います。
「'」で囲むという裏技
さて、ちょっと裏技も紹介します。(裏技でもないか!?w)
他の言語でも、プログラミングの世界ではだいたい「"」で文字を囲むのが伝統的な習慣になってますが、ここで扱っている言語(JavaScript)では、「'」も同じ様に文字として扱ってくれます。
「'」で囲った場合、「"」はエスケープせずとも文字として扱ってくれます。このように書くだけです。
'一時間目の授業は"算数"です。'
もちろん、逆に「'」を使うときにはエスケープが必要になります。
'一時間目の授業は\'算数\'です。'
文字を扱うときに「"」で囲むのか「'」で囲むのかは好みの問題なので、どちらを使っても構いません。わかりにくくならないように、どちらかに統一するようにするのが良いと思います。
少し余談ですが、伝統的なプログラミングでは「'」で囲むのは1バイト文字という習わしがあり、「'」で文字列を囲むことを避けるプログラマもいます。一方で、このJavaScriptという言語はホームページで使われることが多く、ページ内の要素を制御することに多用されています。例えば、ホームページ上の要素 width="100" をJavaScriptを使って表示しようとした場合 "width=\"100\"" のようにわざわざエスケープ文字を加えなければなりません。そんなこともあって、ホームページの要素とプログラミングの文字要素をかんたんに区別するために「'」で囲む用例が多くなったように思います。こうすることで、'width="100"' とするだけでよくなります。
今日のクイズ
実行ログに以下の文字を表示してください。
\\\---\今日の授業\---\\\'1限目'プログラミングで"変数"を学ぼう!
「 ' 」「 " 」「 \ 」の表示される数など正確に表示されているか確認してください。
文字の表示は部分は最もこだわりが強く出る部分で、ハマりやすいポイントなのでぜひしっかりクイズ実習してみてください!
#りな塾_licodeenar #プログラム #遊び