JavaScript オブジェクトは、属性または名前付き値のコレクションです。属性値が関数の場合、それをメソッドと呼びます。文字列にもプロパティとメソッドがあることがわかります。
var s="こんにちは、世界!";
var word=s.substring(s.indexof("") 1,s.length);
文字列はオブジェクトではないのに、なぜ属性があるのでしょうか? 文字列の属性が参照されている限り、JavaScript は新しい String のコンストラクターを呼び出して文字列値をオブジェクトに変換します。プロパティへの参照を処理するために使用されます。プロパティ参照が終了すると、新しく作成されたオブジェクトは破棄されます (実際、このオブジェクトは実装で必ずしも作成されるわけではありませんが、プロセス全体は次のようになります)。 )。
文字列と同様に、数値やブール値にも独自のメソッドがあります。一時オブジェクトは Number() および Boolean() コンストラクターを通じて作成され、これらのメソッドの呼び出しはこの一時オブジェクトから行われます。この一時的なオブジェクトはラッパー オブジェクトと呼ばれます。
注:
var s="test"; // 文字列を宣言します
s.len=4;
Var t = s.Len // この属性をクエリします
この時点で、t を出力するときは、コードの 2 行目で一時文字列オブジェクトを作成し、その len 属性に値 4 を割り当ててから、コードの 3 行目で新しいオブジェクトを破棄します。元の文字列値 s.Attribute の len 属性を読み取ってみます。この属性は当然存在しないため、t が出力されるときの値は未定義です。
このコードは、数値、文字列、またはブール値の属性値 (またはメソッド) を読み取るときはオブジェクトのように動作しますが、その属性に値を割り当てようとすると、この操作は無視されることを示しています。保持されない一時オブジェクトで発生するだけです。
文字列、数値、またはブール値のプロパティにアクセスするときに作成される一時オブジェクトは、ラッパー オブジェクトと呼ばれ、文字列値と文字列オブジェクト、数値と数値オブジェクト、ブール値を区別するためにのみ使用されます。およびブールオブジェクト