JavaScriptオブジェクトは複合値であり、属性または名前付き値のコレクションです。シンボルを介して属性値を参照します。属性値が関数である場合、それをメソッドと呼びます。文字列にはプロパティと方法もあります。
コードコピーは次のとおりです。
var s = "hello、world!";
var word = S.Substring(S.Indexof( "")+1、S.Length);
文字列はオブジェクトではないので、なぜ属性があるのですか?文字列Sの属性が参照される限り、JavaScriptは新しい文字列のコンストラクターを呼び出すことにより、文字列値をオブジェクトに変換します。このオブジェクトは文字列メソッドを継承し、属性への参照を処理するために使用されます。属性参照が完了すると、新しく作成されたオブジェクトが破壊されます(実際、このオブジェクトは実装では作成されませんが、プロセス全体がこのようになります)。
文字列と同様に、数字やブール値には独自の方法があります。数字()およびboolean()コンストラクターを介して一時的なオブジェクトを作成し、これらのメソッドへの呼び出しはこの一時的なオブジェクトからのものです。この一時的なオブジェクトは、ラッパーオブジェクトと呼ばれます。
知らせ:
コードコピーは次のとおりです。
var s = "test"; //文字列を宣言します
s.len = 4; // Lenプロパティを設定します
var t = s.len; //このプロパティを照会します
この時点で、tを出力する場合、未定義の必要があります。コードの2行目は一時的な文字列オブジェクトを作成し、LEN属性値を4に割り当て、オブジェクトを破壊します。コードの3行目は、元の文字列値sを介して新しい属性を設定し、そのlen属性を読み込もうとします。この属性は当然存在しないため、Tが出力の場合の値は未定義です。
このコードは、数字、文字列、ブール値の属性値(またはメソッド)を読み取ると、オブジェクトのように動作するが、値を属性に割り当てようとすると、この操作は無視されることを示しています。変更は一時的なオブジェクトでのみ発生し、この一時オブジェクトは保存され続けません。
文字列、数字、またはブール値のプロパティにアクセスするときに作成された一時的なオブジェクトは、ラッパーオブジェクトと呼ばれます。文字列値と文字列オブジェクト、数値オブジェクト、ブール値、ブールオブジェクトを区別するためにのみ使用されます。