Javascript 检查财产存在的最佳实践
从性能/最佳实践的角度来看,进行如下检查是否更好:Javascript 检查财产存在的最佳实践,javascript,conditional-statements,Javascript,Conditional Statements,从性能/最佳实践的角度来看,进行如下检查是否更好: if ('x' in y) 或者这个: if (y.x) 除了第一个返回值false和第二个返回值undefined之外,它们之间有什么区别吗?如果只想在该对象中查找属性,可以使用hasOwnProperty,如果还可以在原型中查找,则可以在语句中使用 是的,有区别。如果您的x属性存在,但其值为undefined-y.x将返回给您undefined,并且无论是否存在x属性或其值是否undefined 看看这个例子,x存在于对象上,但是z不存
if ('x' in y)
或者这个:
if (y.x)
除了第一个返回值
false
和第二个返回值undefined
之外,它们之间有什么区别吗?如果只想在该对象中查找属性,可以使用hasOwnProperty
,如果还可以在原型中查找,则可以在语句中使用
是的,有区别。如果您的x
属性存在,但其值为undefined
-y.x
将返回给您undefined
,并且无论是否存在x
属性或其值是否undefined
看看这个例子,x
存在于对象上,但是z
不存在,当访问y.x
和y.z
时,给出了相同的结果
consty={x:undefined};
if('x'在y中){
log('x存在于y对象上');
}
控制台日志(y.x);
控制台日志(y.z)
如果y
中存在x
,我猜y.x
在解析后也会获取值<代码>y中的“x”
只需执行一次搜索,搜索速度会更快
这并没有考虑它将如何影响if()
提供的两个代码段执行不同的任务。第一个片段检查属性是否存在,第二个片段检查值。如果该值恰好为零或任何其他预期值,则第二个代码段将失败。