「JavaScript高級プログラム設計」読書ノート(二)ECMAScriptの中のオリジナルタイプ

3030 ワード

2.6元のタイプ
ECMAScriptは5種類のオリジナルタイプがあります.すなわち、Unidefined、Null、Boolean、Number、Stringです.ECMAScriptは、typeofで値を判断するタイプを提供します.
1、typeof演算子:
 
  
var sTemp="test string";
alert(typeof sTemp);//outpus "string"
alert(typeof 95);//outpus "number"
typeof演算子の戻り値は5種類しかありません.変数がUnidefined型であれば「undefined」に戻り、変数がBoolean型であれば「bollan」に戻ります.変数がNumber型であれば「number」に戻り、変数がString型であれば「string」に戻ります.変数が参照型またはNull型であれば「object」に戻ります.
2、UnidefinedタイプのUnidefinedタイプは一つの値、すなわちundefinedだけです.宣言された変数が初期化されていない場合と関数が明確な戻り値がない場合、変数のデフォルト値と関数の戻り値は共にundefinedです.なお、値undefinedは未定義の値とは異なりますが、typeofはこの2つの値を区別しません.以下のコードを参照してください.
 
  
var oTemp;
alert(typeof oTemp); //outpus "undefined"
alert(typeof otemp2); //outpus "undefined"
alert(oTemp==undefined); //outpus "true"
alert(oTemp2==undefined); //causes error
function testFunc(){
//
}
alert(testFunc() == undefined); //outpus "true"
3、Nullタイプ
Nullも一つの値しかないタイプです.専用値nullしかありません.値undefinedは実際に値nullから派生したものではないので、ECMAScriptはそれらを等しく定義します.
1 alert(null==undefined)//outpus「true」
この二つの値は同じですが、意味は違います.undefinedは変数を宣言していますが、初期化されていない場合の値で、nullはまだ存在していないオブジェクトを表します.
4、Booleanタイプ
Booleanは2つの値trueとfalseがあります.
5、Numberタイプ
Numberは32ビットの整数を表してもよく、64ビットの浮動小数点を表してもよく、異なる進数間の表示:
 
  
var iNum=55;// 10
var iNum=070;// 8
var iNum=oxAB;//16
var fNum=3.125e7;//
いくつかの特殊値もNumberタイプと定義されています.最初の二つはNumber.MAX_です.VALEとNumber.MIN_VALEは、Number値セットの外界を定義している.すべてのECMAScript数はこの二つの値の間に必要ですが、計算によって生成された数値結果はこの二つの数の間に落ちなくてもいいです.
計算で生成された数がNumber.MAX_より大きい場合VALEの時、値Number.POSITIVE_を与えられます.INFINITYは、もはやデジタル値がないことを意味する.同様に、生成値はNumber.MIN_より小さい.VALEの計算にも値Number.NEGATIVE_が付与されます.INFINITYは、もはやデジタル値がないことを意味する.計算した結果が無限大であれば、生成した結果は他の計算には使えない.
実際には、無限大、すなわちInfinityという専門的な値があります.Number.POSITIVE_INFINITYの値はInfinity、Number.NEGATIVE_INFINITYの値は-Infinityです.
任意の数に対してisfinit()を呼び出す方法で無限大かどうかを判断することができます.例:
 
  
var iResult = iNum*some_really_large_number;
if(isFinit(iResult)){
alert("Number is finite");
}
else{
alert("Number is infinite");
}
もう一つの特殊値はNaNで、非数(Not a Number)を表しています.NaNは一般的にタイプ変換失敗時の値で、NaNは算術計算に用いられません.NaNのもう一つの特異点は、それ自体とは等しくないことです.したがって、isNaN()の使用を推奨します.
 
  
alert(NaN == NaN); //outpus "false"
alert(isNaN("blue")); //outpus "true"
alert(isNaN("123")); //outpus "false"
alert(isNaN(123)); //outpus "false"
6、Steringタイプ
Stringは固定サイズがない唯一のオリジナルタイプです.ECMAScriptの文字数:
字面りょうげん
行をかえる
\tタブ
\bスペース
\r戻ります.
\f改ページ符
\\バックスラッシュ
\'単引用符
\"ダブルクォーテーション
\0 nnn 8進コードnnnで表される文字
\xnn 16進コードnnで表される文字
\unnnn 16進数コードnn表にないユニック文字