JavaScript null和undefined的区别和联系

🌙
手机阅读
本文目录结构

null和undefined的区别和联系

undefined是javascript中的一大特点,是javascript独有的数据和数据类型

这个数据类型只有这一个值;就是undefined,它的类型也是undefined,

既然它是javascript独有的一个数据类型,那它在javascript编程里必然有它的特点;所以再重复说下;

在javascript里,null和undefined都表示不存在的数据,并且undefined也是从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,比如做定时器的时候)
  • 在函数(方法)里,如果必须返回值;但是值又计算不出来,那就返回一个null;(这是规范,而不是语法规定,JS里遵循这个规范)
    • 比如网页中没有ID是div1的元素,则下面的这句脚本返回null;
    • Document.getElementById(“div1”)//返回null;
    • 但是没有返回值的函数,它的返回值都是undefined;

白话文

  • null: 你有一个种树的想法,圈一块地,说你要在这里种树;
  • undefined:你有一个种树的想法,圈一块地,说你要在这里种树;同时你还挖了一个坑准备种树(仅仅是挖坑,也还没有种树);

AXIHE / 精选资源

浏览全部教程

面试题

学习网站

前端培训
自己甄别

前端书籍

关于朱安邦

我叫 朱安邦,阿西河的站长,在杭州。

以前是一名平面设计师,后来开始接接触前端开发,主要研究前端技术中的JS方向。

业余时间我喜欢分享和交流自己的技术,欢迎大家关注我的 Bilibili

关注我: Github / 知乎

于2021年离开前端领域,目前重心放在研究区块链上面了

我叫朱安邦,阿西河的站长

目前在杭州从事区块链周边的开发工作,机械专业,以前从事平面设计工作。

2014年底脱产在老家自学6个月的前端技术,自学期间几乎从未出过家门,最终找到了满意的前端工作。更多>

于2021年离开前端领域,目前从事区块链方面工作了