1、判断彼此是否相等

function btnClick(){
    alert(null == null);//true
    alert(undefined==undefined);//true
    alert(NaN==NaN);//false
}

总结:

    (1)两个null是相等的

    (2)两个undefined是相等的

    (3)两个NaN是不相等的

function btnClick(){
    alert(null == undefined);//true
    alert(null === undefined);//false
    alert(null == NaN);//false
    alert(undefined == NaN);//false
}

总结:

    (1)null和undefined是使用“==”是相等的,而使用“===”是不相等的

    (2)null和NaN是不相等的

    (3)undefined和NaN是不相等的

function btnClick(){
    alert(typeof(null));//object
    alert(typeof(undefined));//undefined
}

总结:

    (1)typeof(null)的结果是"object"

    (2)typeof(undefined)的结果是"undefined"



2、判断是否为null、undefined、NaN


使用==、===、isXxx、typeof、instanceof


2.1、判断是否为undefined

正确的做法

var tmp = undefined;
function btnClick(){
    if(typeof(tmp)=="undefined"){
        alert("tmp is undefined!");
    }
}

或者

var tmp = null; 
function btnClick(){
    if(tmp === undefined){
        alert("tmp is undefined!");
    }
}


错误的做法

var tmp = undefined; // null,undefined
function btnClick(){
    if(tmp == undefined){
        alert("tmp is undefined!");
    }
}

分析:如果使用tmp==undefined,无论tmp的值是null或undefined,都会判断为true


2.2、判断是否为null

正确的做法

var tmp = null; // null,NaN,undefined
function btnClick(){
    if(!tmp && typeof(tmp)!="undefined" && !isNaN(tmp)){
        alert("tmp is null!");
    }
}

或者

var tmp = null; // null,NaN,undefined
function btnClick(){
    if(tmp==null && typeof(tmp)!="undefined"){
        alert("tmp is null!");
    }
}


2.3、判断是否为NaN

正确的做法:

var tmp = NaN; // null,NaN,undefined
function btnClick(){
    if(isNaN(tmp) && typeof(tmp)!="undefined"){
        alert("tmp is NaN!");
    }
}


2.4、判断是否为null或undefined

正确的做法:

var tmp = null; // null,NaN,undefined
function btnClick(){
    if(tmp == null){
        alert("tmp is null or undefined!");
    }
}

或者

var tmp = undefined; // null,NaN,undefined
function btnClick(){
    if(tmp == undefined){
        alert("tmp is null or undefined!");
    }
}


2.5、判断是否为undefined或NaN

正确做法:

var tmp = NaN; // null,NaN,undefined
function btnClick(){
    if(isNaN(tmp)){
        alert("tmp is NaN or undefined!");
    }
}


2.6、判断是否为null或undefined或NaN

正确的做法:

var tmp = null; // null,NaN,undefined
function btnClick(){
    if(!tmp){
        alert("tmp is null or undefined or NaN!");
    }
}