JavaScript中的null和undefined

发布时间 2023-08-24 07:04:50作者: 晓风晓浪

null是一种语言关键字,评估为一个特殊的值,通常用于表示值的缺失。使用typeof操作符与null一起会返回字符串"object",这表明null可以被视为表示"无对象"的特殊对象。然而,在实践中,null通常被认为是其自身类型的唯一成员,并且用于表示数字、字符串和对象的值缺失。大多数编程语言都有与JavaScript的null等价的值,例如NULLnilNone

JavaScript中的undefined也表示值的缺失,但意味着更深层次的不存在。具体而言,当变量的值尚未初始化时,它是undefined,并且尝试访问不存在的对象属性或数组元素也会导致undefined。此外,未明确返回值的函数将返回undefined,并且未传递的函数参数的值将为undefinedundefined是预定义的全局常量(不同于像null这样的语言关键字,尽管在实践中这种区别并不关键),其初始值为undefined。对undefined应用typeof操作符将返回"undefined",表示这个值是其特殊类型的唯一成员。

撇开微小的差异,nullundefined都可以用来表示值的缺失,并且常常可以互换使用。相等性操作符==将它们视为相等(要区分它们,必须使用严格相等操作符===)。由于它们都是falsy值,所以它们可以在布尔上下文中用作false。既nullundefined都没有属性或方法。实际上,在这些值上使用.[]访问属性或方法会导致TypeError

在我看来,undefined可以用于指示系统级别、意外或类似的错误,其中缺失一个值。另一方面,null可以用于指示程序级别、正常或预期的值缺失。在实际编码中,我倾向于避免使用nullundefined。如果我需要将这样的值分配给变量或属性,或者从函数中传递/接收这样的值,我通常使用null。然而,一些程序员积极避免使用null,而更倾向于使用undefined

 (程序员的软技能:ke.qq.com/course/6034346)