文字列値を比較するときは常に===(3つの等しい、厳密な比較)を使い始めましたが、今では
"foo" === new String("foo")
これは偽であり、これと同じです:
var f = "foo", g = new String("foo");
f === g; // false
もちろん:
f == g; // true
それで、文字列の比較には常に==を使用するか、比較する前に変数を常に文字列に変換することをお勧めしますか?
new String
(完全に無意味な)文字列を作成しないことをお勧めします==
new String("foo")
そもそもなぜJavascriptのような構文を使用したいのでしょうか。コード、つまりjQueryでそのようなコードを見たことがありません...
String(obj)
「string」パラメータを受け取ったら、を使用してボックス化された文字列をプリミティブに変換できます。("foo" === String(new String("foo"))) === true
foo
は純粋な文字列でnew String("foo")
あり、オブジェクト文字列だからです