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就是这样设置。