我需要检查对象中是否有子对象可用。让父对象是 window
,而子对象为 navigator
。可能有多种方法可以做到这一点。
-
'navigator' in window
-
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.