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!");
}
}
















