13.说一说null 和 undefined 的区别,如何让一个属性变为null
得分点:
操作的变量没有被赋值、全局对象的一个属性、函数没有return返回值、值
null
特指对象的值未设置undefined == null
、undefined !== 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
类型。
对象被赋值了