JavaScriptの文字列

JavaScriptの文字列はテキストの保存と操作に使用されます。

JavaScriptの文字列

JavaScriptの文字列は引号内のゼロ個以上の文字です。

var x = \"Bill Gates\";

実際に試してみてください

シングルクォートまたはダブルクォートを使用できます:

var carname = \"Porsche 911\";
var carname = 'Porsche 911';

実際に試してみてください

文字列内で引号を使用できますが、文字列を囲む引号と一致しなければなりません:

var answer = \"It's good to see you again!\";
var answer = \"He is called 'Bill'\";
var answer = 'He is called \"Bill\"';

実際に試してみてください

文字列の長さ

内蔵属性 length 文字列の長さ

var txt = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
var sln = txt.length;

実際に試してみてください

特殊文字

文字列は引号で囲まなくてはならないため、JavaScriptはこの文字列を誤解します:

var y = "中国は磁器の故郷であり、したがって china は"China(中国)"と同名です。"

この文字列は「中国は磁器の故郷であり、したがって china は」に分割されます「China(中国)」。"

この問題を避ける方法は、次のようになります: \ エスケープ文字

特殊文字を文字列文字に変換するためのアンシーコード文字は、反斜杠でエスケープされます:

コード 結果 説明
\' ' シングルクォート
\" " ダブルクォート
\\\ \ エスケープシーケンス

シーケンス \" 文字列にダブルクォートを挿入する方法:

var x = "中国は瓷器的故里であり、したがって china は\"China(中国)\"と同名です。"

実際に試してみてください

シーケンス \' 文字列にシングルクォートを挿入する方法:

var x = 'It\'s good to see you again';

実際に試してみてください

シーケンス \\\ 文字列に反斜杠を挿入する方法:

var x = "文字 \\ は反斜杠と呼ばれます。";

実際に試してみてください

エスケープシーケンス(\)は、文字列に他の特殊文字を挿入するためにも使用できます。

他の6つのJavaScriptで有効なエスケープシーケンス:

コード 結果
\b バックスパース
\f ページ
\n 新しい行
\r リターン
\t 水平タブ
\v 垂直タブ

これらの6つのエスケープシーケンスは、最初はタイプライター、テレタイプライター、ファックスマシンのコントロールのために設計されました。HTMLでは何の意味もありません。

長いコード行の改行

最適な可読性のために、プログラマーは通常、一行あたり80文字を超えないようにします。

JavaScriptの文が一つの行に収まらない場合、最適な改行位置はある演算子の後です:

document.getElementById("demo").innerHTML =
"Hello Kitty.";

実際に試してみてください

あなたも文字列の中で改行は、反斜杠を使って行われます:

document.getElementById("demo").innerHTML = "Hello \
Kitty!";

実際に試してみてください

\ このメソッドはECMAScript(JavaScript)の標準ではありません。

一部のブラウザも許可しません \ スペースが文字の後ろにあります。

長い文字列の改行を行う最も安全な方法(しかし少し遅いです)は、文字列の加法を使用することです:

document.getElementById("demo").innerHTML = "Hello" + 
"Kitty!";

実際に試してみてください

コード行の改行には反斜杠を使用できません:

document.getElementById("demo").innerHTML = \ 
"Hello Kitty!";

実際に試してみてください

文字列はオブジェクトでもあります

通常、JavaScriptの文字列は原始値で、文字列リテラルで作成されます:

var firstName = "Bill"

しかし、文字列もキーワードで new オブジェクトとして定義されています:

var firstName = new String("Bill")

var x = "Bill";
var y = new String("Bill");
// typeof x が string を返します
// typeof y が object を返します

実際に試してみてください

文字列をオブジェクトとして作成しないでください。それにより実行速度が遅くなります。

new キーワードはコードを複雑にします。また予期せぬ結果を引き起こす可能性があります:

次のように使用する場合 == 相等演算子を使用する場合、相等な文字列は相等です:

var x = "Bill";             
var y = new String("Bill");
// (x == y) は true です。なぜなら x と y の値が一致するからです

実際に試してみてください

次のように使用する場合 === 演算子を使用する場合、相等な文字列は不相等です。なぜなら === 演算子はタイプと値の両方が一致する必要があります。

var x = "Bill";             
var y = new String("Bill");
// (x === y) は false です。なぜなら x と y のタイプが異なるからです(文字列とオブジェクト)

実際に試してみてください

さらに悪いです。オブジェクトは比較できません:

var x = new String("Bill");             
var y = new String("Bill");
// (x == y) は false です。なぜなら x と y は異なるオブジェクトであるからです

実際に試してみてください

var x = new String("Bill");             
var y = new String("Bill");
// (x === y) は false です。なぜなら x と y は異なるオブジェクトであるからです

実際に試してみてください

注意してください (x==y) と (x===y) の違いです。

JavaScript オブジェクトは比較できません。二つの JavaScript を比較すると常に false