点进来的前端佬兄弟冷静冷静,先别喷,看完再喷,好吗?
事情的起因是和同事一起聊天,互相吹皮各自主用的编程语言一些缺陷时,然后话题又转到哪个语言写“Hello World”字符最少。
其中一后端同事说了句:“C(语言)写个hello world最麻烦吧,还得加个main函数...”然后我这边想了想,说:“这个还好,用JS(Javascript),连输出个'Hello World' 都写不了”。
有经验的前端大佬可能在这里只想输出,不想再看了。
"console.log('Hello World')
这个你都不会吗?"
呃呃...没有错的,这个不管在浏览器中的输出面板还是在node中的终端面板中,都能准确输出。
但是,但是,但是,console这个函数,并不是是ECMAScript的标准哦!
虽然console有自己的标准(参考网站console.spec.whatwg.org)。
虽然浏览器和node对其有很好的实现。
但是,还是得说但是,这只是JS宿主所提供的能力。
可能有些大佬又想起了alert('Hello World')
,如下图:
但还是遗憾。
这玩意完整调用,是window.alert('Hello World')
。
依稀记得,之前这种的和上面这种的,是有个笼统的约定词语(并非标准),叫做BOM(浏览器对象模型),当然了,看名字就知道,只是针对浏览器的。
以前在开发兼容IE6/7/8浏览器的时候,没少用这个玩意。因为console那个时候并没有在老版浏览器中得到实现。
当然,还有更细心的大佬,会说出**document.write('Hello World')、document.getElementsByTagName("body")[0].innerText = 'Hello World' 、 document.xxxx**
等等.
这些,依旧还不是哦!
document开头的这些,算是DOM(文档对象模型)所提供的能力。我们用来操作DOM树。还附加了一些操作CSS的API。
所以,看到这里的各位大佬,我想告诉你:
JavaScript 没有任何打印或者输出的函数!!!
至于为什么标准不加这个输出函数上去,可能是脚本语言的特性或者发展到现在,根本就不需要了?还请各位赐教。如果后期挖掘到什么这类的八卦内幕,还会在这里分享给大家!