javascriptデータタイプとnull、NaN、undefined

2898 ワード

仕事をして一年以上になりました.知識をまとめて書く習慣はありませんでした.最近記憶力は本当に限られています.暇な時に基礎知識をまとめてみて、知識を固める一方で、後で探しやすいようにしましょう. 
1、javascriptのタイプ    javascirptは3つの基本データタイプがあります.    文字列string、数値number、ブールbolean    2つの参照データの種類:     オブジェクトObject;配列Aray    二つの特殊なデータタイプ:Null、Unidefinedは、typeof(param)によってデータタイプを判定することができます.
 
var t1;
var t2 = true;
var t3 = 3;
var t4 = "t";
var t5 = new Object();
var t6 = null;
var t7 = NaN;
var t8 = undefined;
alert(typeof(t));  //   "undefined"
alert(typeof(t1)); //  "undefined"
alert(typeof(t2)); //  "boolean"
alert(typeof(t3)); //  "number"
alert(typeof(t4)); //  "string"
alert(typeof(t5)); //  "Object"
alert(typeof(t6)); //  "Object"
alert(typeof(t7)); //  "number"
alert(typeof(t8)); //  "undefined"
定義された変数が初期化されていない場合、デフォルトはundefinedです.
 
2、空と判断するか、対象でないか、または等しいかどうか
 
var t1;        //t1     undefined
var t2 = null;
var t3 = NaN;
var t4="";
var t5='';
var t6 = new Object();

alert(t1 == t2); //  "true" undefined null  
alert(t1 == t3); //  "false"
alert(t2 == t3); //  "false" 
alert(t3 == t3); //  "false" NaN        ,       。
alert(t4==t5); //   "true"                  
alert(t4==null);//   "false"        null
alert(t4==t6);//   "false" 
alert(t6==null);//   "false"
 Number、Boolean、String、Udefinedといういくつかの基本的なタイプの混合比較では、数字に変換して比較基本的なタイプと複合オブジェクトを比較する場合、まず複合オブジェクトを基本的なタイプに変換し(valueOfとtostringメソッドを順次呼び出して)、undefinedを基本的なタイプとして比較し、undefinedを数字に変換するNaNとなります.したがって、undefinedはnull以外の他のタイプの値と比較すると常にfalseに戻ります.
nullは複合対象とされており、nullはvalueOfとtostring方法がないため、undefined以外の他のタイプの値と比較すると常にfalseに戻ります.
3、if判断
  if(param)は、パラメータが0、NaN、unfinded、空の文字列の場合はfalseに戻り、パラメータが他の場合はtrueに戻ります.
 
if   (typeOf(x)   ==   "undefined") //        
if   (typeOf(x)   ==   "object") //     object  
if(isNaN(x)) //  true    ,  false   
if(x) //    
var t;
var t1 = 0;
var t2 = -1;
var t3 = 2;
var t4 = "";
var t6 = new Object();
alert(t6?"true":"false");//true 
alert(t?"true":"false"); //false undefined   if    false
alert(t1?"true":"false");//false   0 if    false
alert(t2?"true":"false");//true
alert(t3?"true":"false");//true   0    if    true
alert(t4?"true":"false"); //false      if    false
alert(NaN?"true":"false"); //false
alert(null?"true":"false"); //false     null    if    false