当前位置: 首页 > Web前端 > JavaScript

JS-你真的知道如何使用console.log吗?

时间:2023-03-27 15:02:40 JavaScript

介绍console.log是每个JavaScript开发者都会经常用到的功能。可能很多初学者在第一次使用JS的时候会这样称呼它。console.log可能是最广泛用于输出调试信息的:console.log(current_processing);当然还有招聘信息:不过,大家可能已经注意到了,百度的招聘信息还是挺花哨的,而且这个词还是红的!不知道你会不会写,反正我第一次看的时候不会做。不管你会不会打印出这样的效果,继续往下看,一定会有收获的。颜色词?完毕!首先,我们来看看如何打印彩色字。console.log(msg)这是JSconsole.log最基本的形式,可能也是大多数人比较熟悉的形式。然而,其实这个msg的背后是有东西的——就是那些不起眼的参数,可以让我们的日志变得“高档”。根据MDN的定义,console.log的定义如下:console.log(obj1[,obj2,...,objN]);console.log(msg[,subst1,...,substN]);其中,obj1-objN代表要输出的JS对象。而msg是一个包含各种控制字符的字符串,也是我们今天的主角。以下subst1-substN是用于替换控制字符的特殊字符串。首先,让我们看一下如何打印彩色字符。console.log("Hello,World")这是最基本的HelloWorld。如果你现在运行它,你将得到一个纯种JSHelloWorld。然而,我们想要的是彩色输出!别着急,让我们来认识一下第一个控制字符——%c。有了它,你就可以在控制台中随意堆砌CSS——没错,这个%c代表的是CSS!只需将%c放在您要使用CSS的字符前面即可开始编写CSS。例如:console.log("%cHello,World")下一步是添加样式。还记得之前的subst吗?它们现在可以派上用场了:console.log("%cHello,World","color:red")是的,你没看错,CSS!一个%c对应一个样式,每个%c都会渲染当前字符到下一个%c之前的字符对应的CSS样式。如果你用的是电脑,你可以按F12试一试,就这么简单!如果你懂一点CSS...你甚至可以做成这样:但是,这个东西更通用的用法是这样的:This:既然上面说了你可以添加自定义CSS,那么我们应该可以完成这个挑战。理论存在,实践开始。首先进入最基本的无样式版本:console.log(`PoweredbyVueBloggerv0.1.0\nGitHub:https://github.com/samzhangjy/VueBlogger\n请star&fork支持作者!`);如刚才所说的方法,在VueBlogger前面添加%c,并添加相应的样式:console.log(`Poweredby%cVueBloggerv0.1.0\nGitHub:https://github.com/samzhangjy/VueBlogger\n请star&fork支持作者!`,"background-color:#1A55ED;padding:7px;color:#fff;");然而,如果只是这样的话,你会得到一个非常蓝色的控制台:还记得我刚才说的吗?一个%c对应一个样式,每个%c都会渲染当前字符到下一个%c之前的字符对应的CSS样式。所以,我们只需要在v0.1.0之前添加%c控制字符:console.log(`Poweredby%cVueBlogger%cv0.1.0\nGitHub:https://github.com/samzhangjy/VueBlogger\n请star&forkto支持作者!`,"background-color:#1A55ED;padding:7px;color:#fff;","background-color:#FCBF23;color:#000;padding:7px;");不过,刚才的这种情况还是会出现,只是变黄了...所以,我们可以再添加一个%c:console.log(`Poweredby%cVueBlogger%cv0.1.0%c\nGitHub:https://github.com/samzhangjy/VueBlogger\n请点赞支持作者!`,"background-color:#1A55ED;padding:7px;color:#fff;","background-color:#FCBF23;color:#000;填充:7px;","");现在我们的控制台输出正常了。是的,你可以通过消隐相应的CSS来去除之前的CSS效果!那么第二个输出就解决了,这里不再赘述。哦,是的,并不是所有的CSS都可以移动到控制台——详情请参阅MDN。当然console.log还有其他的控制字符——比如%o、%d、%s、%f等,这里不再赘述,可以参考MDN了解更多。其中%d、%s、%f与其他语言(如C++)中的格式化字符串非常相似,同样用于格式化字符串、数字等信息。console.assert——调试神器如果你用过Python,你一定对unittest中assertXxxx形式的函数非常熟悉。现在,它的一些灵魂甚至进入了JS!没错,就是console.assert。按照惯例,先看定义:console.assert(assertion,obj1[,obj2,...,objN]);console.assert(assertion,msg[,subst1,...,substN]);//C-like消息格式类似于console.log-但还有一个断言。它是要断言的对象。如果断言的结果不为真,将以类似于console.error()的样式打印以下错误消息msg。让我们看一个最简单的例子:console.assert(![],"Yep,that'sfalsy.")如果![]的值不为真,那么我们会收到一个自定义错误:那么,如果assert的结果是true,会正常执行,无输出:同样,console.assert也可以用CSS:console.assert(0.1+0.2===0.3,"%c你连0.1+0.2在js里都拿不准。","font-weight:bold;font-style:italic;background-color:orange;color:#000")console.count——计数神器语法:console.count([label]);console.count函数接收一个字符串列表,列表中的元素代表一个标签。每一次计数,console.count都会输出当前标签列表被计数的次数,并不断累加。如果没有给出标签,将使用默认的默认标签。这个东西用起来也很简单,给它输入一些数据就行了:console.count("A");console.count("B");console.count("A");例如:for(vari=1;i<=10;i++){for(varj=1;j<=i;j++){if(i%j==0)console.count(i)}这段代码会输出1-10这些数的因数个数。console.group——没什么特别的,我觉得会有用console.group可以让你在控制台输出层次嵌套的信息可以使用console.group创建一个新层,然后使用console.log、console.warn、console.error等函数在该层下输出,最后使用console.groupEnd()结束当前层。示例:console.log("我在顶层");console.group("2级组在这里!");console.log("我在2级!");console.group("Level3!");console.log("你知道吗,[]在JS中真的很奇怪。")console.error("0.1+0.2!==0.3inJS=(");console.groupEnd();console.log("Backatlevel2!");console.groupEnd();console.info("Wow,whatatripupthere!");函数太多了,不要让他们自己定义.你应该参考一下运行结果就可以理解了总结本文简单介绍了控制台的各种使用方法。不过像一些太常见的(比如info、error、warning等),这里就不一一介绍了。如果有朋友想进一步了解这方面的内容,可以去MDN上查一查。我相信你会有所收获。我是samzhangjy,下次见!