JavaScriptの基本包装タイプ
12224 ワード
基本タイプの値をより良く操作できるように、JavaScriptは3つの特別な引用タイプを提供しています.Boolean、Number、String.これらの引用のタイプは伝統的なオブジェクトと似ています.自分の属性と方法がありますが、それぞれの特殊な行為も備えています.
1つ 基本包装のタイプ紹介
基本タイプの値は属性と方法がなく、変えられないことを知っています.しかし、上の3つの特殊な引用タイプは、基本タイプの値を操作できる方法を与えている.
実際にJavaScriptは基本タイプの値を読む時、バックグラウンドは次のように操作します.
1, 基本パッケージタイプ(ここではStringタイプ)の一例を作成します.
2, この例で関連方法を呼び出します.
3, 直ちにこの実例を廃棄する.
したがって、実際のstr 1は、メソッドを呼び出すときに、次のようなプロセスを実行したと理解できる.
通常の参照タイプと基本的な包装タイプの違いは、オブジェクトのライフサイクルにあり、newオペレータを使用して作成されたオブジェクトは、プログラム実行フローが現在のスコープから離れるまでメモリに存在していますが、バックグラウンドで作成された基本的なパッケージタイプのオブジェクトは、1行のコードの実行瞬間だけに存在し、すぐに破棄されました.これは、基本的なタイプの値に属性と方法を追加することができるという意味ですが、最終的にはそれらは保持されません.
二番目 Booleanタイプ
Booleanタイプは、ブール値に対応する参照タイプである.Booleanオブジェクトを作成するには、次のようにすることができます.
三番目 Numberタイプ
Numberタイプは数字に対応する参照タイプです.デジタルオブジェクトを明示的に作成することができます.Booleanタイプと同様に、newで数値値を作成すると、typeof検出を使って「object」に戻ります.
また、Numberオブジェクトは、2つの実用的な方法を提供する.
1, toFixed()
数値をパラメータとして受け入れます.数桁の小数を残して、文字列の種類の数字を返します.
数値をパラメータとして受け入れ、保持する小数点以下の桁数を表し、指数形式で表示される数字を返します.文字列の種類です.
四番目 Stringタイプ
Stringタイプは文字列包装タイプです.newを使って文字列オブジェクトを明示的に作成することもできますが、推奨されません.
Stringタイプの各例には、どの文字が含まれているかを示すlength属性があります.
1, charAt()とcharCodeAt()—ある位置の単一文字を取得します.
4, indexOf()とlastIndexOf()—サブストリングが文字列で初めて現れる位置を検索します.
5, toLowerCase()とtoUpperCase()—サイズ書き換え
7, スプリット()--文字列を分割する
8,trim()--文字列の先頭の空白文字を取り除く
1つ 基本包装のタイプ紹介
基本タイプの値は属性と方法がなく、変えられないことを知っています.しかし、上の3つの特殊な引用タイプは、基本タイプの値を操作できる方法を与えている.
1 var str1 = "hello world";
2 var str2 = str1.sunstring(5);
上のコードから知っていますが、str 1は基本的なタイプの文字列ですが、私たちはそれを使って一つの方法を呼び出して、戻り値をstr 2に割り当てました.基本タイプの値は仕方がないはずですが、この操作はどうやって実現されますか?実際にJavaScriptは基本タイプの値を読む時、バックグラウンドは次のように操作します.
1, 基本パッケージタイプ(ここではStringタイプ)の一例を作成します.
2, この例で関連方法を呼び出します.
3, 直ちにこの実例を廃棄する.
したがって、実際のstr 1は、メソッドを呼び出すときに、次のようなプロセスを実行したと理解できる.
1 var s1 = new String(str1);
2 var str2 = s1.substring(5);
3 s1 = null;
上記の操作は全部バックグラウンドで行われています.私たちはそれに気付かないです.通常の参照タイプと基本的な包装タイプの違いは、オブジェクトのライフサイクルにあり、newオペレータを使用して作成されたオブジェクトは、プログラム実行フローが現在のスコープから離れるまでメモリに存在していますが、バックグラウンドで作成された基本的なパッケージタイプのオブジェクトは、1行のコードの実行瞬間だけに存在し、すぐに破棄されました.これは、基本的なタイプの値に属性と方法を追加することができるという意味ですが、最終的にはそれらは保持されません.
1 var str = "hello";
2 str.name = "someText";
3 str.say = function(){
4 //some code;
5 };
6 console.log(str.name);//undefined
7 str.say();//TypeError: str.say is not a function
次のコードを見てください.1 var str = new String("hello");
2 typeof str;//"object"
3 console.log(str);//{0:"h",1:"e",2:"l",3:"l",4:"o",length:5}
基本的なパッケージタイプのオブジェクトを明示的に作成することができますが、テキスト情報を格納するために文字列タイプを使用するという初心からは完全に逸脱していますので、特に必要がない場合は、明示的に作成したり、使用したりしないことをお勧めします.二番目 Booleanタイプ
Booleanタイプは、ブール値に対応する参照タイプである.Booleanオブジェクトを作成するには、次のようにすることができます.
1 var BooleanObj = new Boolean(false);
しかし、問題があります.次のコードを見てください.1 var booleanObj = new Boolean(false);
2 var result = booleanObj && true;
3 console.log(result);//true
bootleanObjの値はfalseであるが、それ自体は対象であり、論理演算を行う際には暗黙的なタイプの変換がトリガされ、すべてのオブジェクトがtrueに変換されるので、最終的なresultの値はtrueであることを知っている.しかし、これは私たちが望む結果ではないので、仕事ではBooleanオブジェクトを使わないほうがいいです.三番目 Numberタイプ
Numberタイプは数字に対応する参照タイプです.デジタルオブジェクトを明示的に作成することができます.Booleanタイプと同様に、newで数値値を作成すると、typeof検出を使って「object」に戻ります.
また、Numberオブジェクトは、2つの実用的な方法を提供する.
1, toFixed()
数値をパラメータとして受け入れます.数桁の小数を残して、文字列の種類の数字を返します.
1 var num1 = 10.005;
2 console.log(num1.toFixed(2));//"10.01"
2, toExponential()数値をパラメータとして受け入れ、保持する小数点以下の桁数を表し、指数形式で表示される数字を返します.文字列の種類です.
1 var num = 10;
2 console.log(num.toExponential(1));//”1.0e+1”
四番目 Stringタイプ
Stringタイプは文字列包装タイプです.newを使って文字列オブジェクトを明示的に作成することもできますが、推奨されません.
Stringタイプの各例には、どの文字が含まれているかを示すlength属性があります.
1 var str = new String(“hello”);
2 console.log(str.length);//5
Stringタイプは、以下のような一般的な方法を提供する.1, charAt()とcharCodeAt()—ある位置の単一文字を取得します.
1 var str = "hello world";
2 console.log(str.charAt(0));//"h",str
3 console.log(str.charAt(str.length - 1));//"d",str
4 console.log(str.charCodeAt(0));//104,str
5 console.log(str.charCodeAt(str.length - 1));//100,str
2, concat()—つなぎ合わせ文字列1 var str1 = "hello";
2 var str2 = "world";
3 console.log(str1.concat(str2));//"helloworld"
4 console.log(str2.concat(str1));//"worldhello"
3, substr()、substring()とslice()—文字列の一部をコピーします.1 var str = "hello world";
2 console.log(str.substring(0,5));//"hello"
3 console.log(str.substring(0));//"hello world"
4 console.log(str.slice(6));//"world"
5 console.log(str.slice(4,7));//"o w"
6 console.log(str.substr(0,4));//"hello"
7 console.log(str.substr(0));//"hello world"
上記の例から、substring()はslice()と同様に、2つのパラメータを受け入れることができ、最初のパラメータは開始位置、2番目のパラメータは終了位置、最後にこの2つのパラメータ区間の文字列(終了位置を含まない)に戻ります.substr()は彼らとは少し違っていますが、第二のパラメータは最後の位置の下付きではなく切り取りが必要な文字列の個数です.彼らはもう一つの共通点があります.第二のパラメータを提供しないなら、彼らはデフォルトで最後までコピーします.4, indexOf()とlastIndexOf()—サブストリングが文字列で初めて現れる位置を検索します.
1 var str = "hello world";
2 console.log(str.indexOf("l"));//2
3 console.log(str.lastIndexOf("l"));//9
indexOf()は行ってから検索します.lastIndexOfは後から前に探します.5, toLowerCase()とtoUpperCase()—サイズ書き換え
1 var str = "hello WORLD";
2 console.log(str.toLowerCase());//"hello world"
3 console.log(str.toUpperCase());//"HELLO WORLD"
6, replace()—一部の文字を置き換える1 var str = "hello world,hello world,hello world";
2 console.log(str.replace("world","bokeyuan"));//"hello bokeyuan,hello world,hello world"
3 console.log(str.replace(/world/g,"bokeyuan"));//"hello bokeyuan,hello bokeyuan,hello bokeyuan",
replace()は2つのパラメータを受け入れます.最初のパラメータは文字列または正規表現であり、検索されたサブストリングを表します.2番目のパラメータは、文字列または関数(戻り値がある)であり、置換テキストを表します.関数は3つのパラメータを受け入れています.最初は置換される文字列が必要で、2番目は文字列に出現する位置で、3番目は検索される文字列自体です.7, スプリット()--文字列を分割する
1 var str = "hello world";
2 console.log(str.split("l"));//["he", "", "o wor", "d"]
文字列に現れたパラメータを境界点として受け取り、文字列を分割して行列を返します.8,trim()--文字列の先頭の空白文字を取り除く
1 var str = " hello ";
2 console.log(str.trim());//"hello"
9, from CharCode()–文字コードを文字に変換1 var str = String.fromCharCode(65,66,67);
2 console.log(str);//"ABC"
from CharCodeはStringの静的な方法ですので、他の方法とはちょっと違います.これは1つ以上の数字を受け入れて、彼らを文字としてエンコードし、該当する文字に変換します.