Javascript 如果JSON键不存在捕获错误
在本文中,我们将讨论当javascript对象中不存在键时的错误处理情况。
JSON是一种字符串格式,用双引号将javascript对象内封起来。
示例:
'{"site": "gfg"}'
JSON对象文字是JSON字符串中的JavaScript对象。
示例:
{"site": "gfg"}
key/value对 出现在JSON对象字面量内部,这是表示JavaScript对象的格式。在上面的示例中, key 是”site”,而这个key的 value 是”gfg”。
现在,回到问题陈述,我们需要找出一个给定的key是否存在于JavaScript对象中,并根据此条件给出一个合适的响应。让我们讨论两种不同的方法来解决这个问题:
方法1: 使用 hasOwnProperty 方法:
这个方法返回一个布尔值;如果JavaScript对象具有其参数中传递的 自有属性 ,则返回 true ,否则返回 false 。
注意: 这里的 自有属性 指的是在对象定义期间定义的属性,即定义在对象本身上的属性,而不是从原型对象继承的属性。
示例:
JavaScript
let obj = {'key': 'value'}
if (obj.hasOwnProperty('key')) {
console.log(true)
} else {
console.log(false)
}
输出:
true
现在,这种方法只在obj不为null或undefined时起作用。当obj为null或undefined时,我们可以修改上面的代码让它像这样工作:
Javascript
let obj;
if (obj && obj.hasOwnProperty('key')) {
console.log(true)
} else {
console.log(false)
}
输出:
false
在 JavaScript 中, &&
是逻辑 AND 运算符,当遇到一个假值条件时,它不允许 JavaScript 解释器继续执行。
方法2: 使用 JavaScript 中的 in 属性:
in 运算符返回一个布尔值,如果指定的属性直接存在于对象本身或对象的原型链中,则返回 true ,否则返回 false 。
示例:
Javascript
let obj = {'key': 'value'}
if ('key' in obj) {
console.log(true)
} else {
console.log(false)
}
输出:
true
这个方法也仅在obj不为null或undefined时有效。为了使其在所有情况下都起作用,请用类似的方式操纵代码。
Javascript
let obj;
if (obj && 'key' in obj) {
console.log(true)
} else {
console.log(false)
}
输出:
false