web-dev-qa-db-ja.com

JavaScriptでプリミティブ文字列(文字列リテラル)を「インスタンス化」する方法

JavaScriptでは、次の方法で文字列を宣言できます。

_var a = "Hello World";
var b = new String("Hello World");
_

ただし、aはStringのインスタンスではありません...

_console.log(a instanceof String); //false;
console.log(b instanceof String); //true;
_

それでは、どのようにしてタイプまたは「instanceof」文字列リテラルを見つけるのでしょうか?

JavaScriptはすべての文字列リテラルに対してnew String()を作成することを強制できますか?

29
series0ne

使用する typeof "foo" === "string" の代わりに instanceof.

60
Artur Udod

代わりにtypeofを使用して、結果の文字列を比較してください。詳細については、 docs を参照してください。

5
isaach1000

新しい文字列を作成するためにnew String()を記述する必要はありません。 _var x = 'test';_ステートメントを記述すると、xをプリミティブデータ型の文字列として作成します。オブジェクトリテラルのように、このxにカスタムプロパティをアタッチすることはできません。すなわち。 _x.custom = 'abc';_ _x.custom_は未定義の値を与えます。したがって、必要に応じて、オブジェクトを作成する必要があります。 new String()は、文字列ではなく、typeof() Objectでオブジェクトを作成します。このオブジェクトにカスタムプロパティを追加できます。

2