私は以前、両方の割り当てa = "foo"とa = new String('foo')は同じものだと思っていました。ただし、前者の宣言では、console.log(a instanceof Object)またはをconsole.log(a instanceof String)返しますが、後者falseの場合は期待値を返します。true
これは2つの理由で奇妙に思えます。まず、通常の宣言を使用してもa = 'foo'、すべての文字列メソッドがそれに対して機能し、オブジェクトから継承されていることを示しStringます。そして次に、をa.constructor返しますString。
誰かが何が起こっているのか説明できますか?