この記事では、a="abc" が a=new String("abc") と等しくない理由を主に紹介します。必要な方は参考にしていただければ幸いです。
当たり前
でも、なぜでしょうか?たくさんの本を読んだり、何人かの専門家に聞いたりしましたが、実はまだ混乱していました。将来の参照のためにここに記録します。
jsでは、元のデータ型とパッケージ化型を区別します。数値、文字列、ブール値、null、および未定義はプリミティブ データ型ですが、数値、文字列、およびブール値はパッケージ化タイプであり、新しい数値によって作成されるものは、パッケージ化タイプの派生オブジェクトです。したがって、この 2 つは等しくありません。
基本型への直接代入後の使用手順は以下の通りです:
1. String型のインスタンスを作成します
2. インスタンス上で指定されたメソッドを呼び出します
3. インスタンスを破棄します
:
a="abc" typeof a //string b=new String("abc") typeof b // object a==b //true a===b //false
ここには別の格言があります: ボックス化、ボックス化解除
ボックス化とは、この値クラスを使用して、対応するパッケージング オブジェクトを構築することです
var a="123" a.toFixed===Number.prototype.toFixed;
ボックス化の最大の役割は、値を使用することです扱うオブジェクトとして。
アンボックス化とは、パッケージングオブジェクトを値型に変換することです
var a=10 ,b="javascript" , c=true; var o_a=new Number(a); var o_b=new String(b); var o_c=new Boolean(c);
関連する推奨事項:
ajaxは、PHPページの戻りパラメータ、コントロール割り当てのメソッドを取得します
jqueryの動的割り当てについてIDと動的IDの取得方法の共有
以上がa='abc' が a=new String('abc') と等しくない理由の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。