检查是否定义了对象/函数(JavaScript、Safari问题)

检查是否定义了对象/函数(JavaScript、Safari问题),javascript,safari,Javascript,Safari,我想检查是否可以使用对象/函数,例如window.performance.now()if(typeof window.performance.now!=“undefined”)工作正常,但Safari(5.1.7,Windows)除外,它返回TypeError:“undefined”不是对象(评估“window.performance.now”)。为避免混淆:console.log(typeof window.performance.now)返回相同的错误。因为Safari不支持window.p

我想检查是否可以使用对象/函数,例如
window.performance.now()
if(typeof window.performance.now!=“undefined”)
工作正常,但Safari(5.1.7,Windows)除外,它返回
TypeError:“undefined”不是对象(评估“window.performance.now”)
。为避免混淆:
console.log(typeof window.performance.now)
返回相同的错误。

因为Safari不支持
window.performance
对象本身。所以你会更安全的检查

typeof window.performance !== 'undefined' && typeof window.performance.now !== 'undefined'
更新

第一个检查是查看
window.performance
对象是否存在。第二项检查是查看
.now()
函数是否在
窗口.performance
对象中可用


因为Safari不支持
window.performance
对象本身。所以你会更安全的检查

typeof window.performance !== 'undefined' && typeof window.performance.now !== 'undefined'
更新

第一个检查是查看
window.performance
对象是否存在。第二项检查是查看
.now()
函数是否在
窗口.performance
对象中可用


谢谢。糟糕的是,在此之后还需要检查
.now()
。是的,检查对象的可用性和函数的可用性是安全的。根据我提供的链接,只有IE9和Opera 15才可以使用对象,而且不支持
now()
函数。是否有任何版本的浏览器/JS,在
if(a和&b)
中计算
b
,假设
a
false
?如果使用
&&
,则必须同时检查这两个条件。如果使用
|
进行编辑,则仅当
a
不满足时才会选中
b
。因此,如果
性能
不可用,OR操作数仍将不起作用。“如果使用&&它必须同时检查这两个条件。”-此语句不正确。谢谢。糟糕的是,在此之后还需要检查
.now()
。是的,检查对象的可用性和函数的可用性是安全的。根据我提供的链接,只有IE9和Opera 15才可以使用对象,而且不支持
now()
函数。是否有任何版本的浏览器/JS,在
if(a和&b)
中计算
b
,假设
a
false
?如果使用
&&
,则必须同时检查这两个条件。如果使用
|
进行编辑,则仅当
a
不满足时才会选中
b
。因此,如果
性能
不可用,OR操作数仍将不起作用。“如果使用&&它必须同时检查这两个条件。”-此语句不正确。