【JS Web 前端知识库】13.说一说null 和 undefined 的区别,如何让一个属性变为null

本文详细探讨了JavaScript中null和undefined的区别,指出undefined是变量未赋值或函数无返回值等场景的表示,而null则代表对象值未设置。在实际应用中,通常使用null来释放或标记对象无效。了解这些差异有助于优化代码和内存管理。

13.说一说null 和 undefined 的区别,如何让一个属性变为null

得分点:

操作的变量没有被赋值、全局对象的一个属性、函数没有return返回值、值 null 特指对象的值未设置 undefined == nullundefined !== null

标准回答:

1.undefind
undefind 是全局对象的一个属性,当一个变量没有被赋值或者一个函数没有返回值或者某个对象不存在某个属性却去访问或者函数定义了形参但没有传递实参,这时候都是undefined
undefined通过typeof判断类型是'undefined'
undefined == undefined
undefined === undefined
2.null
null代表对象的值未设置,相当于一个对象没有设置指针地址就是null
null通过typeof判断类型是’object’。
null === null null == null null == undefined null !== undefined
3. undefined 表示一个变量初始状态值,而null则表示一个变量被人为的设置为空对象,而不是原始状态。 在实际使用过程中,不需要对一个变量显式的赋值 undefined,当需要释放一个对象时,直接赋值为 null 即可。
4.😄让一个变量为null,直接给该变量赋值为null即可。

加分回答:

null 其实属于自己的类型 Null,而不属于Object类型,typeof 之所以会判定为 Object
类型,是因为JavaScript 数据类型在底层都是以二进制的形式表示的,二进制的前三位为 0 会被 typeof
判断为对象类型,而 null 的二进制位恰好都是 0 ,因此,null 被误判断为 Object 类型。
对象被赋值了null 以后,对象对应的堆内存中的值就是游离状态了,GC 会择机回收该值并释放内存。
因此,需要释放某个对象,就将变量设置为 null,即表示该对象已经被清空,目前无效状态。

实用技巧

1.table表格内的渲染

{
                    label: 'BD.head.operation',
                    defaultVisible: true,
                    fixed: 'right',
                    minWidth: 60,
                    operations: [
                        {
                            clickEvent: (e) => {
                                this.dialogData = toolUtil.deepCopy(e);
                                this.BdJumpToBing() // 点击跳转到详情界面
                            },
                            text: 'binding', // 提示本按钮的用途
                            authLocations: ['device.manager.switch.detail.config.BD.binding'],
                            iconClass: 'iconfont iconyilianjie',
                            disableFunc: row => {
                                if (!row['config-status']) {
                                    return true
                                } else {
                                    if (['', null, undefined].includes(row['config-status']['sync-status'])) {
                                        return true
                                    } else {
                                        if (row['config-status']['sync-status'] === 'SYNC') {
                                            return false
                                        } else {
                                            return true
                                        }
                                    }
                                }
                            }
                        }
                 ]
            }

💞💖💓💗每个时代,
✨🌟⭐️💫都悄悄犒赏会学习的人。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

随风一样自由

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值