Javascript 为什么控制台是非标准的?

Javascript 为什么控制台是非标准的?,javascript,Javascript,查看,您可以找到以下消息: 非标准 此功能是非标准的,不在标准上 跟踪。不要在面向Web的生产站点上使用它:它不会 为每个用户工作。两者之间也可能存在很大的不兼容性 实现和行为在将来可能会发生变化 显然,console不是用于生产的,我假设它被很多人使用,那么为什么它没有成为一个标准或被提议作为一个标准呢?它与DOM无关,但它不能成为ECMAScript的一个特性吗?主机环境似乎总是提供一种将某些内容输出到控制台的方法,或者决定忽略它,因此我不认为将其作为标准会有什么危害。我只是猜测-这部分是由

查看,您可以找到以下消息:

非标准

此功能是非标准的,不在标准上 跟踪。不要在面向Web的生产站点上使用它:它不会 为每个用户工作。两者之间也可能存在很大的不兼容性 实现和行为在将来可能会发生变化


显然,
console
不是用于生产的,我假设它被很多人使用,那么为什么它没有成为一个标准或被提议作为一个标准呢?它与DOM无关,但它不能成为ECMAScript的一个特性吗?主机环境似乎总是提供一种将某些内容输出到控制台的方法,或者决定忽略它,因此我不认为将其作为标准会有什么危害。

我只是猜测-这部分是由于向后兼容造成的问题,但同时,
log
方法的实现可能会对不同的参数做不同的事情,以满足浏览器设计者的不同需求,从而使其成为非标准的

我不知道你是否见过这种方法-

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

接下来的一个问题可能是,如果我们需要为该方法提供标准支持,我们如何检查
日志
方法参数中是否存在支持。

提出了相同的问题,在这里,您可以阅读控制台API标准化的支持者和非支持者提供的所有参数的完整消息传递线程

简言之,有人建议对控制台API进行标准化,例如(由提出问题的人发起)。它还包含关于其他标准化(文档)工作的有用信息

关于你的声明:

很明显,控制台不是用于生产的

也许它不适用于生产,但在某些情况下,它在生产中很有用,比如为专业用户提供提示和详细错误。例如,Facebook使用控制台API打印此警告横幅


您可以询问标准控制台的工作人员:。控制台是一种调试工具,即:不适用于生产现场。我见过console.debug()使ie浏览器崩溃,但没有看到console.log()。将它们保留在生产代码中是一种不好的做法,但我同意将它们作为标准将是一个好主意。一般来说,标准委员会倾向于使标准反映真实世界的浏览器实现(将来可能还包括node.js中的内容)。因为console.log对于IE来说仍然有问题,所以它没有添加到标准中。如果MS Edge以与其他浏览器制造商相同的方式实现console.log,我们可能会看到它在ES7或HTML6中标准化,使用cconditional语句始终是最佳实践。很好,有人发布了它,即使是生产或调试