English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
文字列は、一文字または複数の文字のシーケンスであり、アルファベット、数字、またはシンボルで構成できます。
JavaScriptの文字列は原始データ型であり、変更不可能です。これはそれらが変更不可能であることを意味します。
JavaScriptの文字列は引号で括られた0個以上の文字です。
var x = "JavaScript教程 ";テストを見て‹/›
JavaScriptでは、以下のどちらかを選択できます。単引号または双引号以下のどちらの方法でも正常に動作します:
var msg1 }`= 'Hello world'; // ダブルクォートを使用します。 var msg2 }`= 'Hello world'; // シングルクォートを使用します。テストを見て‹/›
文字列内に引用符を使用できますが、それらが文字列の周囲の引用符と一致しなければなりません:
var str1 }`= 'She said "Hey" and left'; // シングルクォート内のダブルクォート var str2 }`= 'She said 'Hey' and left'; // ダブルクォート内のシングルクォート var str3 }`= 'Let's have a cup of tea'; // ダブルクォート内のシングルクォート var str4 }`= 'We\'ll never give up'; // シングルクォートをエスケープして使用します。テストを見て‹/›
最新の文字列を作成する方法はテンプレート定数(template literal).
テンプレートリテラル(template literal)は反引号(` `)を使用し、通常の文字列と同じように動作します:
var x = `この文字列は反引号を使用しています。`;テストを見て‹/›
length属性は文字列の長さを返します。空文字列の場合、長さは0です。
var str = 'JavaScript教程 '; str.length;// return 15テストを見て‹/›
注意:スペースも文字として計算されます。
結合は、2つ以上の文字列を連結して新しい文字列を作成することを意味します。
+ 演算子は文字列を追加(連結)するために使用されます。
var str1 }`= "quick brown fox"; var str2 }`= "over the lazy dog"; var str3 }`= "The " + str1 + " jumps " + str2;テストを見て‹/›
テンプレートリテラル機能の特別な機能の一つは、文字列に式や変数を含むことができます。結合(連結)を使わずに、${}文法を使用して変数を挿入できます。
var str1 }`= "quick brown fox"; var str2 }`= "over the lazy dog"; var str3 }`= `The ${str1}`jumps ${str2}`;テストを見て‹/›
この場合、テンプレートリテラル(template literal)を使用すると、書きやすく便利です。
文字列は引号で囲まなければならないため、以下の内容はエラーになります。なぜなら、ブラウザが文字列の終わりを混乱させるからです:
var x = 'We'll never give up'; var y = "She said 'Hey' and left";
エスケープシーケンスは、それらをテキストとして認識するために操作する必要があることを意味し、コードの一部として認識されないようにします。
JavaScriptでは、文字\の前に反斜杠()を付けることでこの目的を達成します。
Code | 結果 | 説明 |
---|---|---|
\' | ' | 単引号 |
\" | ” | 双引号 |
\\ | \ | 反斜杠 |
このシーケンス\'は、文字列に一文字の引用符を挿入します:
var x = 'We\'ll never give up';テストを見て‹/›
このシーケンス\"は、文字列に双引号を挿入します:
var x = "She said \テストを見て‹/›
このシーケンス\\は、文字列に反斜杠を挿入します:
var x = "The character \\ is called backslash";テストを見て‹/›
JavaScriptでは、他の6つのエスケープシーケンスも有効です:
Code | 説明 |
---|---|
\b | バックスパース |
\f | フォーム |
\n | 新しい行 |
\r | リターン |
\t | 水平タブ |
\v | 垂直タブ |
キーボードで入力できない文字を使用する場合、エスケープシーケンスも非常に役立ちます。
最適な可読性を得るために、コード行の長さを避けるべきです:80文字。
JavaScriptの文が一行に収まらない場合、最適な折り返し位置は演算子の後です:
document.getElementById("para").innerHTML = "The sum of 20 and 30 is " + sum;テストを見て‹/›
一行に非常に長い文字列を書くと、すぐに読みやすくないことと使用が難しくなります。
私たちは連結演算子(+)を複数行にわたって表示します。
var str = "空気汚染は化学物質が" + "大気圏。それは環境のバランスを破壊し、" + "いくつかの病気.";テストを見て‹/›
複数の文字列を使用する以外に、\エスケープシーケンスを使用することもできます。
var str = "空気汚染は化学物質が\ 大気圏。それは環境のバランスを破壊し、\ いくつかの病気.";テストを見て‹/›
注意:その(\)メソッドは推奨されません。なぜなら、特定のブラウザやminifiersに問題を引き起こす可能性があるからです。
コードの可読性を向上させるために、以下のように変更することができます:テンプレート定数(template literal)
var str = `空気汚染は化学物質が`, 大気圏。それは環境のバランスを破壊し、 いくつかの病気。`;テストを見て‹/›
複数行の文字列を作成するためのすべての方法を知っておくことは重要です。なぜなら、異なるコードベースがさまざまな標準を使用する可能性があるからです。
通常、JavaScriptの文字列は文字から作成された原始値で生成されます:
var city = "New Delhi";
しかし、newキーワードを使用して文字列をオブジェクトとして定義することもできます:
var city = new String("New Delhi");
両者の違いをテストするために、文字列基本型と文字列オブジェクトを初期化します。
var str1 = "New Delhi"; var str2 = new String("New Delhi"); typeof str1// returns string typeof str2// returns objectテストを見て‹/›
注意:文字列をオブジェクトとして作成しないでください。これにより、実行速度が低下し、予期せぬ結果が発生する可能性があります。
==演算子を使用する場合、等しい文字列も同じです:
var str1 = "New Delhi"; var str2 = new String("New Delhi"); document.write(str1 == str2); //trueが返されます、なぜならstr1とstr2の値が等しいテストを見て‹/›
===演算子を使用する場合、値が等しい文字列も異なります、なぜなら===演算子は値とタイプが等しいことを期待しています:
var str1 = "New Delhi"; var str2 = new String("New Delhi"); document.write(str1 === str2); //falseが返されます、なぜならstr1とstr2のタイプが異なりますテストを見て‹/›
オブジェクトを比較することができません:
var str1 = new String("New Delhi"); var str2 = new String("New Delhi"); document.write(str1 == str2); //strのために1とstr2異なるオブジェクトであるため、falseが返されます document.write(str1 === str2); //strのために1とstr2異なるオブジェクトであるため、falseが返されますテストを見て‹/›
注意(==)と(===)の違い。JavaScriptオブジェクトを比較すると常にfalseが返されます。