日期:2014-05-16  浏览次数:20423 次

Js中的undefined,null,NaN,Bool以及类型判断

1.类型分析:

javascript 有三种基本数据类型(字符串string、数值number、布尔boolean ),两种引用数据类型(对象Object、数组Array)和两种特殊数据类型(Null 、Undefined )。


var a1;
var a2 = true;
var a3 = 1;
var a4 = "Hello";
var a5 = new Object();
var a6 = null;
var a7 = NaN;
var a8 = undefined;

alert(typeof a);?? //显示"undefined"
alert(typeof a1); //显示"undefined"
alert(typeof a2); //显示"boolean"
alert(typeof a3); //显示"number"
alert(typeof a4); //显示"string"
alert(typeof a5); //显示"object"
alert(typeof a6); //显示"object"
alert(typeof a7); //显示"number"
alert(typeof a8); //显示"undefined"

当定义了一个变量未初始化的时候,默认值为:undefined,而不是 数字0或字符串""。

如果直接用alert()方法显示一个未定义的变量 ,例如:alert(abc),这时js就会报错:"abc"未定义,为防止这种错误,我们可以预先这样判断一下

if(typeof(abc)!="undefined")

{

alert(abc)

}

2,Js判断为空或不是对象或是否相等

var a1;??????? //a1的值为undefined
var a2 = null;
var a3 = NaN;

var a4="";

var a5='';

var var a6 = new Object();

alert(a1 == a2); //显示"true" undefined与null相等

alert(a1 == a3); //显示"false"

alert(a2 == a3); //显示"false"

alert(a3 == a3); //显示"false" NaN与任何值都不相等,与自己也不相等。

alert(a4==a5); //显示 "true" 双引号的字符串和单引号的字符串相等

alert(a4==null);//显示 "false" 空字符串不等于null

alert(a4==a6);//显示 "false"

alert(a6==null);//显示 "false"

if?? (typeOf(x)?? ==?? "undefined") // 变量是否已定义

if?? (typeOf(x)?? ==?? "object") //变量是否是object类型

if(isNaN(x)) //返回true不是数字,返回false是数字

if(x) //直接判断

var a;
var a1 = 0;
var a2 = -1;
var a3 = 2;
var a4 = "";
var a5 = '';
var a6 = new Object();

if (a) alert("true"); else alert("false"); //false undefined常量在if判断中为false

if (a1) alert("true"); else alert("false"); //false 数字0在if判断中为false

if (a2) alert("true"); else alert("false"); //true

if (a3) alert("true"); else alert("false"); //true 不为0的数字在if判断中为true

if (a4) alert("true"); else alert("false"); //false 空字符串在if判断中为false

if (NaN) alert("true"); else alert("false"); //false

if (null) alert("true"); else alert("false"); //false 任何值为null的变量在if判断中为false