2

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

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

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

console.log(console.clear);

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

2 回答 2

5

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

'', (+-)0, null, undefined, NaN, false
于 2013-07-19T12:39:22.377 回答
4

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

还有一件事:如果你的代码console本身不存在,你的代码会抛出一个错误(在没有打开开发工具的情况下,IE<=9 就是这种情况)。更安全的测试是:

if (console && console.clear) { console.clear() };
于 2013-07-19T12:38:46.897 回答