Ответ 1
Кажется, это ошибка в IE, так как многие (или все) элементы консоли, которые должны быть функциями, выглядят как объекты.
Если вы пытаетесь вызвать методы функции, которых там нет, вы можете обратиться к этой статье: http://whattheheadsaid.com/2011/04/internet-explorer-9s-problematic-console-object
В противном случае самое простое решение:
typeof(console.log) !== 'undefined'
Это не самое прекрасное решение, поскольку это действительно ошибка с соблюдением стандартов безопасности IE, несмотря на то, что их диск делает противоположное, но console.log не должен быть чем-то другим, кроме объекта или функции, поэтому должно быть безопасно использовать. В противном случае вы можете сделать что-то более сложное, например:
switch (typeof(console.log)) {
case 'object':
case 'function':
// Should be a valid console.log object, do something with it
break;
}