阿西河

所有教程

公众号
🌙
阿西河前端的公众号

我的收藏

    最近访问  (文章)

      教程列表

      抓包专区
      测试专区

      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:你有一个种树的想法,圈一块地,说你要在这里种树;同时你还挖了一个坑准备种树(仅仅是挖坑,也还没有种树);
      目录
      目录