2015-05-15 2 views
3

Глядя на here, вы можете найти это сообщение:Почему консоль нестандартная?

Нестандартные

Эта функция не является стандартной и не на стандартах трассе. Не используйте его на производственных площадках, обращенных к Интернету: это не будет для каждого пользователя. Также могут быть большие несовместимости между реализациями , и поведение может измениться в будущем.

Очевидно, что console не предназначен для производства, и я полагаю, что она используется в helluvalot людей, так почему не сделаться стандарта или предложен в качестве стандарта? Это не связано с DOM, но не может ли это быть особенностью ECMAScript? Кажется, что среды-хосты всегда могут обеспечить способ вывода чего-либо в консоль или принять решение игнорировать его, поэтому я не вижу вреда в том, что он стал стандартом.

+0

Вы могли бы спросить у людей, которые работают по стандарту: https://esdiscuss.org. –

+0

консоль - это инструмент отладки, т.е. не предназначен для производственного сайта. Я видел ошибку console.debug(), т.е. браузеры, но не console.log(). Было бы плохой практикой держать их в производственном кодексе, но я согласен с тем, что их стандарт станет хорошей идеей. –

+0

В целом комитет по стандартам обычно делает стандарт отражением реализаций браузера в реальном мире (а в будущем, возможно, и от node.js). С консоли.log все еще проблематичен для IE, он не добавляется к стандарту. Если MS Edge реализует console.log так же, как и остальные разработчики браузеров, мы, вероятно, увидим его стандартизованным в ES7 или html6. – slebetman

ответ

2

Тот же вопрос был задан here, где вы можете прочитать полную нить обмена сообщений для всех аргументов, сделанных сторонниками и , не являющихся сторонников Консоли стандартизации API.

Вкратце, есть предложения по стандартизации API-интерфейса консоли, например this one (который инициирован парнем, который задал вопрос). Он также содержит полезную информацию о других усилиях по стандартизации (документации).

А что касается вашего заявления:

Очевидно, что консоль не предназначена для производства ...

Может быть, это не для производства, но бывают случаи, когда это полезно в производстве , как предоставление советов и подробных ошибок для профессиональных пользователей. Например, Facebook использует Console API для печати этого предупреждающего баннера.

enter image description here

2

Я просто предполагаю, что это частично проблема из-за обратной совместимости, а также тот факт, что реализация метода log может делать разные вещи для разных параметров для удовлетворения различных потребностей дизайнеров браузеров, стандарт.

Я не знаю, если вы когда-либо видел этот метод -

if(window.console && console.log) { 
    console.log('your message'); 
} 

Followup вопрос может быть, как мы можем проверить на наличие поддержки внутри параметров log метод, если он когда-нибудь получилось нам необходимо было предложить стандартную поддержку этого метода.

+0

Использование условного оператора всегда является лучшей практикой. Хорошо, что кто-то отправил его, даже если это производство или отладка – EasyBB

Смежные вопросы