02.08 「前端架构师30天快速掌握js04」之简单数据类型null和undefined

此篇文章讲解目录:

  1. null

  2. undefined

  3. null和undefined的关系

  4. null和undefined的区别

null(空值,曾经赋过值,但是目前没有值)

  • 逻辑上null表示一个空对象的指针

  • 使用typeof检测的时候会返回object;(object原型的终点也是null)

undefined(没有值,指从没有赋过值)

  • 使用var声明变量但没有初始化/赋值的

  • 区分空对象指针与尚未定义的变量

  • 对未初始化的变量以及未声明的变量使用typeof运算符均会返回undefined;

注意:console.log(xxx) 和 var xxx;console.log(xxx);是不同的,前者是语法错误,后者才是undefined

「前端架构师30天快速掌握js04」之简单数据类型null和undefined

null和undefined的关系

undefined派生自null;因为undefined派生子null;所以Null和undefined做比较的时候是true;但是null和undefined和别的人和类型比较都不想等;

  • undefined派生子null,因此在使用”==”进行比较的时候会返回true;

  • 没有必要将变量显示声明undefined;

  • 声明非空对象对应将其赋值为null;比如做定时器的时候用timer=null来重置变量;

「前端架构师30天快速掌握js04」之简单数据类型null和undefined

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信息”。


分享到:


相關文章: