Javascript 检查JSON对象内部密钥的正确方法
我知道有不同的方法来检查JSON对象中的密钥Javascript 检查JSON对象内部密钥的正确方法,javascript,node.js,json,Javascript,Node.js,Json,我知道有不同的方法来检查JSON对象中的密钥 const person={ 姓名:'约翰', 年龄:25岁, Istenager:错 } 如果(个人姓名){ console.log('名称存在') } if(person.hasOwnProperty('age')){ console.log('age exists') } if(Object.prototype.hasOwnProperty.call(person'isTeenager')){ console.log('isTeenager存
const person={
姓名:'约翰',
年龄:25岁,
Istenager:错
}
如果(个人姓名){
console.log('名称存在')
}
if(person.hasOwnProperty('age')){
console.log('age exists')
}
if(Object.prototype.hasOwnProperty.call(person'isTeenager')){
console.log('isTeenager存在')
}
正如你在第一个例子中提到的,你不能总是依赖于真实的虚假检查。如果值为
false
if (person.isTeenager) {
console.log('key exists')
}
else{
console.log('key not exists')
}
在这件事上你会得到法尔西的。因此,始终使用
hasOwnProperty
方法您不能像第一个示例中提到的那样始终依赖truthy-falsy检查。如果值为false
if (person.isTeenager) {
console.log('key exists')
}
else{
console.log('key not exists')
}
在这件事上你会得到法尔西的。因此,始终使用性能方面的hasOwnProperty
方法,如果(obj.value!=未定义)
将是“最好的”
var perf=require(“perf_”)。性能;
var obj={
主持人:“嗨”
};
var start=perf.now();
如果(obj.iExist!=未定义){//由于布尔函数的潜在问题,从obj.iExist更改为obj.iExist!=未定义。
}
var end=perf.now();
log(“基本if:+(结束-开始));
var start1=perf.now();
if(对象hasOwnProperty('iExist')){
}
var end1=perf.now();
log(“hasOwnProperty:”+(end1-start));
输出:
basic if: 0.06810665130615234
hasOwnProperty : 4.006890296936035
希望这有帮助 性能方面,如果(obj.value!=未定义)
将是“最佳”
var perf=require(“perf_”)。性能;
var obj={
主持人:“嗨”
};
var start=perf.now();
如果(obj.iExist!=未定义){//由于布尔函数的潜在问题,从obj.iExist更改为obj.iExist!=未定义。
}
var end=perf.now();
log(“基本if:+(结束-开始));
var start1=perf.now();
if(对象hasOwnProperty('iExist')){
}
var end1=perf.now();
log(“hasOwnProperty:”+(end1-start));
输出:
basic if: 0.06810665130615234
hasOwnProperty : 4.006890296936035
希望这有帮助 这取决于您想要自己的财产还是继承的财产?您遗漏了
if(“name”本人)
if(person.name)
如果财产的值为假值,则将失败。当您知道所有有效值都是真实值时,您可以使用它。这取决于您想要自己的属性还是继承的属性。您忽略了if(“name”亲自)
if(person.name)
如果属性的值为假值,则将失败。当您知道所有有效值都是真实值时,可以使用它。