文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

JavaScript中null和undefined的区别是什么

2023-06-26 07:08

关注

这篇文章给大家介绍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的区别是什么就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯