首页 > 其他分享 >js中null和undefined的区别

js中null和undefined的区别

时间:2022-09-05 13:11:08浏览次数:62  
标签:undefined 对象 js typeof null 变量 赋值

undefind 是全局对象的一个属性,当一个变量没有被赋值或者一个函数没有返回值或者某个对象不存在某个属性却去访问或者函数定义了形参但没有传递实参,这时候都是undefined。 undefined通过typeof判断类型是'undefined'。undefined == undefined undefined === undefined 。   null代表对象的值未设置,相当于一个对象没有设置指针地址就是null。null通过typeof判断类型是'object'。 null === null null == null null == undefined null !== undefined   区别: undefined 表示一个变量初始状态值,而 null 则表示一个变量被人为的设置为空对象,而不是原始状态。 在实际使用过程中,不需要对一个变量显式的赋值 undefined,当需要释放一个对象时,直接赋值为 null 即可。 让一个变量为null,直接给该变量赋值为null即可。   null 其实属于自己的类型 Null,而不属于Object类型,typeof 之所以会判定为 Object 类型,是因为JavaScript 数据类型在底层都是以二进制的形式表示的,二进制的前三位为 0 会被 typeof 判断为对象类型,而 null 的二进制位恰好都是 0 ,因此,null 被误判断为 Object 类型。 对象被赋值了null 以后,对象对应的堆内存中的值就是游离状态了,GC 会择机回收该值并释放内存。 因此,需要释放某个对象,就将变量设置为 null,即表示该对象已经被清空,目前无效状态。  

标签:undefined,对象,js,typeof,null,变量,赋值
From: https://www.cnblogs.com/yueyiviolet/p/16657747.html

相关文章

  • js判断变量数据类型typeof、instanceof、Object.prototype.toString.call()、 constru
    JavaScript有4种方法判断变量的类型,分别是typeof、instanceof、Object.prototype.toString.call()(对象原型链判断方法)、constructor(用于引用数据类型) typeof:常用于......
  • js数据类型
    JS数据类型分为两类:一类是基本数据类型,也叫简单数据类型,包含7种类型,分别是Number、String、Boolean、BigInt、Symbol、Null、Undefined。另一类是引用数据类型也叫复杂......
  • JS中Promise
    Promise的作用:Promise是异步微任务,解决了异步多层嵌套回调的问题,让代码的可读性更高,更容易维护。 Promise如何使用:Promise是ES6提供的一个构造函数,可以使用Promise构......
  • 前端JS-Day20
    BOM:浏览器对象模型,核心对象为Window 通过var声明的所有全局变量和函数都会变成window对象的属性和方法,let或const则不行。  窗口加载事件:addEventListener('load......
  • JavaScript日期处理类库-Moment.js
    JavaScript日期处理类库-Moment.js参考链接日期格式化moment().format('MMMMDoYYYY,h:mm:ssa');//九月5日2022,10:00:10上午moment().format('dddd');......
  • mysql decimal设置默认值0 无效,设置后自动变为null(通过Navicat可视化工具操作)
    转:mysqldecimal设置默认值0无效,设置后自动变为null(通过Navicat可视化工具操作)通过sql解决。通过createtable表名可以查看创建表语句。altertable tb_orderal......
  • JS事件循环(event loop)
    事件循环概述事件循环是用来实现异步特性的。事件循环中的几个概念:主线程:理解为同步任务的先进先出,一旦调用,同步任务就执行。执行栈:先入后出的数据结构,一个任务来......
  • json基础
      json内可以包括任何字符类型varJsonObj={"key":value,"key2":"abc","key3":true......
  • 使用 Node.js 构建基于 Typescript 的命令行界面 (CLI)
    使用Node.js构建基于Typescript的命令行界面(CLI)我们的目标是使用Typescript创建一个基于Node.js的命令行界面(CLI)。此设置包括顶级等待支持和ES模块导入。......
  • JS | getBoundingClientRect()方法的基本使用
    Element.getBoundingClientRect()方法返回一个DOMRect对象,其提供了元素的大小及其相对于视口的位置。返回的对象中有几个只读属性:width/x:元素矩形的宽度height/y......