今回は、文字列の扱いを学んでいきます。
文字列の書き方
前回、以下のコードを書いてみました。
console.log('Hello, JavaScript!');
その中の、シングルクォーテーションで囲まれた文が、文字列として扱われます。
'Hello, JavaScript!'
また、ダブルクォーテーション(”)でも同様に文字列になります。
console.log("Hello, JavaScript!");
文字列の中で、シングルクォーテーションを使いたい時もあると思います。
例えば、「I’m Japanese.」のような文です。
console.log("I'm Japanese.");
このように、ダブルクォーテーションで囲んでいれば問題はありませんが、以下のように書くとエラーが発生します。
console.log('I'm Japanese.');
'I'
で文字列が終了してしまい、m以降の文が文字列として認識されないからです。
文字列の中でシングルクォーテーションを使いたい時は、ダブルクォーテーションで囲むか、以下のような書き方をします。
console.log('I\'m Japanese.');
バックスラッシュ(\)の後にシングルクォーテーション(’)を書くと、文字列の終了ではなく文字として扱われるためエラーが発生しません。
\'
のような書き方をエスケープシーケンスと言います。
同様に、ダブルクォーテーション(”)で囲んだ文字列の中に、ダブルクォーテーションを使いたい場合は、\"
のように書きます。
シングルクォーテーション(’)、ダブルクォーテーション(”)どちらでも問題はありませんが、シングルクォーテーション(’)を使う人の割合の方が多いようです。
JavaScriptでは、文字列の中にHTMLを書くことがあるので、シングルクォーテーション(’)の方が楽かと思います。
シングルクォーテーション(’)の場合、以下のようなコードになります。
console.log('<p class="text">Text</p>');
一方、ダブルクォーテーションで書くとエスケープが必要なので、以下のように少し面倒な書き方になります。
console.log("<p class=\"text\">Text</p>");
当コースでは、特に理由がない場合はシングルクォーテーション(’)で統一して書いていきます。
型
シングルクォーテーション(’)またはダブルクォーテーション(”)で囲まれた文字列は、Stringという「型」になります。
例えば、1
はNumber(数値)という型ですが、'1'
はStringなので異なる扱われ方をします。
プログラミングでは、そのデータがどの型になっているかを意識しておく必要があるので、型というものがあるということは覚えておきましょう。
文字列を結合する
script.jsを、以下のように書き換えてみてください。
console.log('Hello, ' + 'world!');
コンソールを確認すると、Hello, world!
と表示されます。
このように、+
で文字列を結合することができます。
次に、以下のように書き換えてみてください。
console.log('9' + '6');
コンソールには96と表示されます。
次に、以下のように書き換えてみるとどうなるでしょうか。
console.log(9 + 6);
15と表示されました。
文字列同士を+
で結ぶと、結合されますが、クォーテーションがない数値同士を+
で結ぶと足し算が行われます。
では、一方を数値、もう一方を文字列にするとどうなるでしょうか。
console.log(9 + '6');
コンソールには96と表示されます。
JavaScriptは、文字列と数値を結合すると、数値は文字列に変換されて扱われます。
コメントアウト
次に、script.jsを以下のように書き換えてみてください。
// console.log("Hello, JavaScript!");
コンソールを確認すると、何も表示されません。
このように、//
を記述した後に続くコードは、処理が行われません。
//
は同じ行にあるコードが無視されるので、次の行には影響しません。
// console.log("Hello, JavaScript!");
console.log("このコードは実行されます。");
また、同じ行でも、//の前にあるコードは無視されません。
console.log("このコードは実行されます。"); // console.log("Hello, JavaScript!");
このように、//
でコードを無視させることを、コメントアウトと言います。
複数行や指定の範囲だけコメントアウトしたい場合は、/*
と */
で囲みます。
/*
console.log("Hello, JavaScript!");
console.log("Hello, world!");
*/
コンソールを確認すると、何も表示されません。
コメントアウトは、コードの説明を書く時によく使われます。
/**
* 「Hello, world!」と表示されます。
*/
console.log("Hello, world!");
コードが長くなると、処理の内容が分かりづらくなるため、後から見た時に分かりやすいようにコードの説明をコメントアウトに書きます。