“if(console.clear)”的内部如何评估为true?

时间:2013-07-19 12:35:37

标签: javascript console

我正在使用一些代码来跳过在Safari中清除控制台,因为Safari中未定义此功能

if (console.clear) { console.clear() };

但是“console.clear”如何评估为真?输出看起来不像是真的。

console.log(console.clear);

// undefined                                Safari
// function()                               FF
// function clear() { [native code] }       Opera, Chrome, IE

2 个答案:

答案 0 :(得分:5)

如果target不是其中之一,则在if语句中返回true:

'', (+-)0, null, undefined, NaN, false

答案 1 :(得分:4)

所有对象都被认为是真实的,函数是JavaScript中的对象。如果没有定义函数,它将返回undefined,这是假的。

还有一件事:如果console本身不存在,您的代码将抛出错误(IE< = 9中没有开启dev工具的情况)。更安全的测试将是:

if (console && console.clear) { console.clear() };