undefined 与 null 的区别 ?
undefined
表示还未定义值,所以当一个变数被宣告但还未被赋予任何值之前,这个变数就会是 undefined
,可以理解为「尚未」。
null
代表的是一个变数的空值,可以理解为「没有」。
undefined
和null
在 JavaScript 中,都是属于原始资料类型(primitive data types) 之一,也就像任何其他资料类别(data types),例如:string
、number
一样,可以被赋予在变数上。两者在使用上,两者会有不同的意义。
举例来说,当前端要向后端索取资料时,因为需要等待资料回传,所以某个变数一开始可能是 undefined
,当资料回来时,就会变成该资料型态。以下面的例子来说,我们有个变数 users
,定义它的型别为
UserDTO[] | undefined
而不是
UserDTO[] | null
正是因为在拿到资料前, users
是「尚未」。
type UserDTO = {
id: string,
firstName: string,
lastName: string,
profilePicture: string | null,
};
const users: UserDTO[] | undefined = await fe