如果我需要检查对象是否可用,那么在 javascript 中哪个更好。 'in'或 obj.key 的类型 !== "undefined"



我需要检查对象中是否有子对象可用。让父对象是 window,而子对象为 navigator。可能有多种方法可以做到这一点。

  1. 'navigator' in window
  2. typeof window.navigator !== "undefined"

哪一种将是理想的方法。

如果它是对象,则以下四个方法应具有相同的时间复杂性:

if('navigator' in window){...}
if(typeof window.navigator !== "undefined"){...}
if(window.navigator){...}
if(window.hasOwnProperty('navigator')){...}

1.在将导航器视为变量的第一个方法中"

if(navigator)

和导航器变量未声明您的代码将导致错误。但是,如果您像窗口的参数一样检查它,例如:

if(window.navigator)

您不会遇到错误,您的支票将导致Undefinded => false(因为您将其转换为" If"语句中的布尔值)。重要的是要记住,如果您的变量为null,则IF语句也会导致错误。

2.使用第二个语法,您可以准确地检查问题中提到的内容。"我需要检查子对象是否在对象中可用。"

总而言之,我将为您的问题推荐第二种方法。

您的意思是什么?

您想检查其他对象的对象所有者或实例吗?

'navigator' in window different with typeof window.navigator !== "undefined"

如果要检查,请在窗口中进行导航器,您最好使用

 typeof window.navigator !== "undefined"   //safety

,如果您想检查实例,最好使用>

实例的关键字

请注意

您不应该使用

 if (variable) //do something, because it's not safety.

相关内容

  • 没有找到相关文章

最新更新