javascript中null与undefined用法区别

发布时间:2020-07-27编辑:脚本学堂
本文介绍了javascript中null与undefined用法区别,在javascript中对于这种生命后没有给定初始值的变量,就给他一个undefined。

通过实例学习下javascript中null与undefined用法区别

undefined:
javascript中变量是弱类型的,所以声明变量的时候只需使用var关键字即可。
如果是像c这样的强类型语言,声明变量时如果没有指定初始值,那么会给他一个默认值,比如int变量的默认值是0。
但是在javascript这样的弱类型语言中,没有办法确定到底该给这样的变量一个什么样的默认值,比如我声明一个变量
var v1;
是给他false还是0,或者是'' ?
因为没有类型,所以无法确定。

在javascript中对于这种生命后没有给定初始值的变量,就给他一个undefined。不过前提是这个变量必须已经声明,如果对于没有声明过的标识符,就会出错。
vo="vo";//不使用var关键字创建的是全局变量,如果不赋值会报错,如下
 

复制代码 代码示例:
//v1;//会报错
var v2;//undeifned
var v3="";//null
alert(vo);
//alert(v1);//
alert(v2);
alert(v3);
 

再来说说null:
javscript有几个基本类型,number,string,boolean,object。对于object 类型的变量,他有两种情况,一种是他是一个对象的实例,另一种他是一个空引用null,熟悉类似java这样面向对象语言的朋友应该很容易理解。对于这两种情况,他们的类型都是object。javascript中的变量,在给他赋值的时候,才
会确定它的类型,比如下面这样。

代码:
 

复制代码 代码示例:
var v1 = 1;
var v2 = true;
 
alert(typeof v1); //number
alert(typeof v2); //boolean
 
v2 = new date();
alert(typeof v2); //object
 
v2 = "str";
alert(typeof v2); //string
 
v2 = null;
alert(typeof v2); //object
 

可以看到,null在 javascript中代表一个特殊的object类型的值,他用来表示空引用的概念,如果要将一个标识符声明称object类型,但是暂时不给他实例,那么就可以将它先初始化为null,以便以后使用。
不一定绝对正确,对于所有变量,只要声明后还没有指定初始值 ,那么他就是undefined,如果是object类型用来表示空引用的概念,那么就是用null来表示。

补充:
null :表示无值;
undefined : 表示一个未声明的变量,或已声明但没有赋值的变量,或一个并不存在的对象属性。==运算符将两者看作相等。如果要区分两者,要使用===或typeof运算符。使用if (!object){}两者就都包含了 。