千家信息网

JavaScript中null和undefined的区别是什么

发表于:2025-01-31 作者:千家信息网编辑
千家信息网最后更新 2025年01月31日,这篇文章给大家介绍JavaScript中null和undefined的区别是什么,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。网上有很多关于null和undefined区别的论述
千家信息网最后更新 2025年01月31日JavaScript中null和undefined的区别是什么

这篇文章给大家介绍JavaScript中null和undefined的区别是什么,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

网上有很多关于null和undefined区别的论述,看似讲了很多知识,但又好像没什么用,无法指导实际开发。结论大多是null和undefined基本一样,只有细微差别,是历史设计错误的产物,甚至应该把其中一个从语言中去掉。

实际上,这两个值还是有很大的区别的,并且这两个值还有存在的意义。

undefined

undefined代表未定义,也就是不存在的意思。也可以换个角度,就是应该有值,但是还没赋值,连null值都没有赋予。

var foo;console.log(foo); // undefinedfoo = null;console.log(foo); // nullconsole.log(bar); // Uncaught ReferenceError: bar is not defined

null

null则代表有值,是存在的,但是为空值。空值不是不存在,而是有一个叫做空值的值。在语言层面,null是object,是一种特殊的空对象。如果把一个变量赋予null,则该变量原先指向的对象可以被GC回收,释放内存空间。当然也可以认为null是null类型,这不影响实际的意义。

console.log(typeof(null)); // objectconsole.log(typeof(undefined)); // undefined

undefined和null类型

在 TypeScript 中,有undefined和null类型,这两种类型都只有唯一一个值,就是它们自己。并且是其它所有类型的子类型,可以赋值给任何类型。

let u: undefined = undefined;let n: null = null;let num: number = u;

实际应用

上面说了那么多,好像除了增加复杂性之外,并没有什么实际的用处。

下面用代码演示这两种类型的实际用法,可以体会不存在和空值具体有什么区别和用处:

var foo = {a:1, b:2};console.log(JSON.stringify(foo)); // {"a":1,"b":2}foo = {...foo, a:null};console.log(JSON.stringify(foo)); // {"a":null,"b":2}foo = {...foo, a:undefined};console.log(JSON.stringify(foo)); // {"b":2}

从上面的代码可以看到,把一个对象的属性设置成undefined后,这个属性就消失了、不存在了。而设置成null,这个属性还是存在,只不过是null值。

如果你想让对象中某个属性消失,那么就把它设置成undefined吧。这也许是undefined和null同时存在的最大的意义。

JavaScript是什么

JavaScript是一种直译式的脚本语言,其解释器被称为JavaScript引擎,是浏览器的一部分,JavaScript是被广泛用于客户端的脚本语言,最早是在HTML网页上使用,用来给HTML网页增加动态功能。

关于JavaScript中null和undefined的区别是什么就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

类型 实际 对象 属性 语言 意义 两个 代码 代表 内容 变量 只有 就是 更多 用处 知识 网页 脚本 还是 帮助 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 网络安全审查的介绍ppt 软件开发人员保密管理 网络安全主要安全有哪些方面 数据库主键有序好还是无序好 2020 公安网络安全宣传周 巨之乾网络技术有限公司怎么样 淘宝有卖游戏玩家数据库的吗 wechat 数据库 花与剑多久开一次服务器 阿里云云服务器存储空间多大 solr数据库入门教程 金蝶云推荐数据库 网络安全行业有多少人才 近日重点网络安全漏洞情况摘报 数据库不能访问本机 湖南版村庄规划数据库建库标准 中国生物医学文献数据库是医学 小学学校网络安全防范措施 郑州恒山系列鲲鹏服务器厂家供应 台州软件开发税率 2020中移动网络安全招标 网络安全主要安全有哪些方面 东营智慧社区软件开发哪儿好 李沧区ios软件开发服务公司 品质软件开发有哪些 百度云上传 服务器错误 刀塔自走棋服务器怎么回事 数据挖掘用什么数据库 cad导出shp数据库 无法连接网络服务器
0