Javascriptの基本包装タイプ

3230 ワード

基本タイプの値を操作しやすくするために、ECMAScriptはBoolean、Number、Stringの3つの特別な参照タイプを提供しています.これらのタイプは他の参照タイプと似ていますが、それぞれの基本パッケージタイプに対応する特殊な挙動もあります.実際には、基本タイプの値を読むたびに、バックグラウンドは、対応する基本パッケージタイプのオブジェクトを作成し、これらのデータを操作するためのいくつかの方法を呼び出すことができます.
var s1 = "some text";
var s2 = s1.substring(2);
    この例の変数s 1は文字列を含んでいます.文字列はもちろん基本タイプの値です.次の行はs 1のsubstringメソッドを呼び出し、その結果をs 2に保存する.基本的なタイプの値は対象ではないので、論理的には方法があるべきではないことを知っています.実は、この直感的な操作を実現するために、バックグラウンドは自動的に一連の処理を完成しました.第二行コードがs 1にアクセスすると、アクセスプロセスは読み出しモード、すなわちメモリからこの文字列の値を読み出す.読み取りモードで文字列にアクセスすると、バックグラウンドは自動的に次の処理を完了します.
    (1)Stringタイプの一例を作成します.
    (2)具体例で指定方法を呼び出します.
    (3)この実例を廃棄する.
    以下のコードで表示できます.
var s1 = new String("some text");
var s2 = s1.substring(2);
s1 = null;
    この処理によって、基本的な文字列の値はオブジェクトと同じになります.また、上記の3つのステップは、BooleanおよびNumberタイプに対応するブール値および数値値にも適用される.
    引用タイプと基本包装タイプの主な違いは対象のライフサイクルです.newオペレータによって作成された参照タイプの例は、現在のスコープからストリームが離れる前にメモリに保存されています.自動的に作成された基本パッケージタイプのオブジェクトは、この行のコードの実行期間(瞬間)だけに存在し、すぐに廃棄されます.これは私たちが運転中に属性と方法を追加できないことを意味します.
var s1 = "some text";
s1.color = "red";
alert(s1.color); //undefined
    もちろん、Boolean、Number、Stringを呼び出して基本的なパッケージタイプのオブジェクトを作成するように表示することができますが、それを推奨しません.基本パッケージタイプの例に対してtypeofを呼び出すと「object」に戻り、基本パッケージタイプのすべてのオブジェクトがブール値trueに変換されます.
var obj = new Object("some text");
alert(obj instanceof String) //true
    注目すべきは,newを用いて基本的な包装型の構造関数を呼び出すと,同名の変換関数を直接呼び出したのとは異なることである.
var value = "25";
var number = Number(value);//    
alert(typeof number) //number
 
var obj = new Number(var); //    
alert(typeof obj) //object