我需要检查一个子对象是否在对象中可用。
设父对象为SELECT name
, firstname
FROM emp
WHERE name+' '+firstname LIKE '%test%'
,子对象为window
。
可能有多种方法可以做到这一点。
navigator
'navigator' in window
哪一个是理想的做法。
答案 0 :(得分:1)
如果它是一个对象,以下四种方法应具有相同的时间复杂度:
if('navigator' in window){...}
if(typeof window.navigator !== "undefined"){...}
if(window.navigator){...}
if(window.hasOwnProperty('navigator')){...}
答案 1 :(得分:1)
1.如果您将导航器检查为变量“
,则第一种方式if(navigator)
并且未声明导航器变量,您的代码将导致错误。但是,如果您将其检查为窗口的参数,例如:
if(window.navigator)
您不会收到错误,系统会检查您的支票是否为undefinded => false(因为你在“if”语句中将它转换为boolean)。重要的是要记住,如果你的变量为null,if语句也将导致false。
2.使用第二种语法,您可以准确检查您在问题中提到的内容。 “我需要检查对象中是否有子对象。”
总之,我会为你的问题推荐第二种方式。
答案 2 :(得分:0)
你的意思是什么?
你想检查对象所有者或另一个对象的实例吗?
typeof window.navigator !== "undefined" //safety
如果你想检查,窗口中的导航器你最好使用
if (variable) //do something, because it's not safety.
如果您想检查实例,最好使用关键字
的实例注意
你不应该使用
{{1}}