此篇文章讲解目录:
null
undefined
null和undefined的关系
null和undefined的区别
null(空值,曾经赋过值,但是目前没有值)
逻辑上null表示一个空对象的指针
使用typeof检测的时候会返回object;(object原型的终点也是null)
undefined(没有值,指从没有赋过值)
使用var声明变量但没有初始化/赋值的
区分空对象指针与尚未定义的变量
对未初始化的变量以及未声明的变量使用typeof运算符均会返回undefined;
注意:console.log(xxx) 和 var xxx;console.log(xxx);是不同的,前者是语法错误,后者才是undefined
null和undefined的关系
undefined派生自null;因为undefined派生子null;所以Null和undefined做比较的时候是true;但是null和undefined和别的人和类型比较都不想等;
undefined派生子null,因此在使用”==”进行比较的时候会返回true;
没有必要将变量显示声明undefined;
声明非空对象对应将其赋值为null;比如做定时器的时候用timer=null来重置变量;
null和undefined的区别
null和undefined都是表示没有的,不存在的值;他们两个在进行逻辑转换时候都是false;这两个值进行比较是true;
Null和undefined没有toString方法;所以null和undefined和数据比较都是false;
因为undefined派生自null,所以undefined和null做数据类型比较的时候的true;
null表示空引用,它是object类型,undefined表示未定义,它是undefined类型;
null是object类型,但不是object的实例;用instanceof为false;
如果一个变量的值是null,那么必须主动的给它赋值null;
一个变量未定义,或者变量定义里未赋值;则是undefined;
需要注意的是,一个变量如果没有定义,是不能直接在程序里使用的(就是不能直接读取,但可以赋值);比如说,本来没有定义一个叫a的变量;但是我去aconsole.log(a);在浏览器里这个语法会报错的;但是可以用typeof去运算;但是如果a定义了,但没有赋值;可以读,它的值就是undefined;表示这个变量没有被赋值;
对于属性来说,如果原来没有这个属性,根本就不存在这个属性,那么它的值就是undefined;
对象的属性不需要定义,如果不存在也可以直接去读,不会报错,而会给一个undefined的值;
如果这个对象以后要用;但是现在还没有值,一般情况下,会给他一个null的值;
-
在函数(方法)里,如果必须返回值;但是值又计算不出来,那就返回一个null;
比如网页中没有ID是div1的元素,则下面的这句脚本返回null;
Document.getElementById(“div1”)//返回null;
但是没有返回值的函数,它的返回值都是undefined;
大家好接下来我们会邀请前端架构师以连载的方式,通过30天的实战系统讲解JavaScript的专业知识,欢迎大家关注头条号“互联网IT信息”。
閱讀更多 互聯網IT信息 的文章