undefined和null

工作已经将近三年,javascript没有系统的学习过,虽然工作上经常用到,但是原理知之甚少,懂语法,能写简单的javascript代码。关于javascript的书籍一本没有看完全过。反而oracle和java的书,看的不少。今年双十一,书的价钱便宜,趁此买了两本关于javascript书籍,才看前几章大有收获,写出来与大家共享。

javascript的关键字undefined

undefined一般是默认为只有定义,没有赋值的变量一般都是默认这个值是undefined。

var a ;
alert(a);

上段代码答应出来就是undefined

变量定义没有赋值,就想上段代码默认值是undefined。也可以直接赋值为undefined,比如
var a = undefined;
alert(a)

打印出也是undefined;我们用typeof查看变量有定义,没有赋值和直接打印出没有赋值的变量

var a; 
alert(typeof(a));
alert(typeof(c))

我们在浏览器可以打印出两次nuedfined。a变量定义,没有赋值,c变量连定义都没有,更谈不上赋值。所以当用typeof来检测数据类型,当时undefined会出现以上两种情况

javascript的关键字null

null是一个特殊的值,表示一个空指针对象,我们用typeof来检测null的数据类型时,他会返回object;如下面代码
var a = null;
alert(typeof(a));
以上代码就会打印出object;

undefined和null的之间一些特点

1、undefined和null都是javascript数据类型中,只有一个值的类型

2、当null和undefined相比较时,即:alert(undefined==null)会返回true

个人认为:null是undefined的一个子集或者说是派生值。理由:javascript的赋值的关键字var,无论是number,boolean,object等等基本类型,都是用var变量=?,而null必须要显示的指出。即vara=null;而undefined却不需要。typeof一个null值,会显示object,说明null表示一个对象的空指针,而undefined显然表示的范围比null大。至于为什么打印出来相等,也许是javascript就是这样设置。

相关推荐