typeof 判断是否为 undefinedtypeof 是一种安全的判断方式,适用于变量可能未声明的情况。
if (typeof value === 'undefined') {
// value 未定义
}特点:
undefined当可以确定变量已声明时,可以直接进行严格比较。
if (value === undefined) {
// value 为 undefined
}需要注意:
null 判断是否为空值null 通常表示变量被显式赋值为空。
if (value === null) {
// value 为 null
}在判断参数是否“有值”时,通常需要同时判断 null 和 undefined。
undefined 与 null这是较为常见的一种写法。
if (value === undefined || value === null) {
// value 不存在
}也可以使用宽松比较的特性:
if (value == null) {
// 等价于 value === undefined || value === null
}in 操作符判断对象属性是否存在当需要判断对象是否包含某个属性(不关心值是否为 undefined)时,可以使用 in。
const obj = { a: undefined }
if ('a' in obj) {
// 属性 a 存在
}该方式会判断对象自身及其原型链上的属性。
hasOwnProperty 判断对象自身属性如果只关心对象自身是否定义了某个属性,可以使用:
if (obj.hasOwnProperty('a')) {
// a 是对象自身属性
}该方法不会检查原型链。
if (!value) {
// 可能误判
}这种方式会将以下值都视为 false:
0
''
false
null
undefined
NaN
因此不适合用于判断参数是否存在。
在 JavaScript 中,判断参数是否存在需要结合具体使用场景:
typeof
undefined / null
in 或 hasOwnProperty
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。