浅谈Chrome开发者工具--- Console面板与常见报错类型
来源:互联网 发布:守望先锋性能数据fps 编辑:程序博客网 时间:2024/05/17 22:25
Console面板
在学习JS之后,Console面板就成了我离不开的工具。在我们的程序无法达到我们所期望的效果时候,就可以在Console面板上调试我们的程序。在面板上,除了报错以外,还可以打印出我们在程序中所想要补货到的一些数据。我用的最多的命令语句就是console.log(),但是在写文章的时候,查阅了资料,发现console命令有着很多的成员,而且都非常的实用。
从最熟悉的开始介绍:
console.log() : 打印出普通信息
console.info : 打印出提示性信息
console.warm(): 打印出警告信息
console.error() : 打印出错误信息
console.debug() : 打印出调试信息
console.log("普通信息");console.info("提示信息");console.warn("警告信息")console.error("错误信息");
平时用的最多的就是console.log(),而info,warm,error虽然对代码使用没有影响,但是可以让它们更语义化,提高对信息分类管理,对于团队合作非常重要。
console.clear() : 清空打印信息
或者按小图标也可以清空控制台上的信息。
console.assert() : 传入两个参数,只有当第一个参数为false时,才会打印出第二个参数所传入的字符串。
var flag = false;console.assert(flag, "打印消息");
console.count() 打印这个语句被调用的次数。
<script> function count(){ console.count("触发了") }</script><button onclick=count()>点击按钮触发</button>
我一共点击触发按钮4次,则调用命令四次。
console.time() : 传入字符串,作为计时器的名字,开始计时直到console.timeEnd()结束计时,记录一段程序运行所花费的时间。
console.time("timeName"); var count = 0; for(var i = 0; i < 100; i++){ count++; } console.timeEnd("timeName")
console.table() : 传入一个数组或者对象,将以表格的形式展现出来,让数据更加的直观。
var languages = [ { name: "JavaScript", fileExtension: ".js" }, { name: "TypeScript", fileExtension: ".ts" }, { name: "CoffeeScript", fileExtension: ".coffee" } ]; console.table(languages);
这是打印出了数组。使用table()方法必须要有一个主键。在数组中,主键就是元素在数组中的编号。
var languages = { a:{ name: "JavaScript", fileExtension: ".js" }, b:{ name: "TypeScript", fileExtension: ".ts" }, c:{ name: "CoffeeScript", fileExtension: ".coffee" } };console.table(languages);
这是打印出一个对象。
console.dir() : 打印出传入的对象的所有属性与方法。
console.log(document.body)console.dir(document.body)
console.dirxml() : 用来显示某个节点的代码。但是用console.log()打印出来的一样的。
console.group()/console.groupEnd() : group()中传入一个字符串作为分组名。可以将打印信息归类分组,使信息更直观。有一种嵌套关系。具体看代码:
console.group('Group One'); console.group('Group Two'); console.log("这是Group Two 里面的信息"); console.groupEnd(); // Group Two 结束 console.log("这是Group One 里面的信息");console.groupEnd(); // Group One 结束
JS常见错误类型
接下来介绍一下常见的错误类型,报错依旧会显示在控制台上。
因学识浅薄,这里引用 ranyonsue 网友的总结。
js常见错误类型
(1)SyntaxError
SyntaxError是解析代码时发生的语法错误
// 变量名错误
var 1a;
// 缺少括号
console.log ‘hello’);
(2)ReferenceError
ReferenceError是引用一个不存在的变量时发生的错误。
unknownVariable
// ReferenceError: unknownVariable is not defined
另一种触发场景是,将一个值分配给无法分配的对象,比如对函数的运行结果或者this赋值。
console.log() = 1
// ReferenceError: Invalid left-hand side in assignment
this = 1
// ReferenceError: Invalid left-hand side in assignment
上面代码对函数console.log的运行结果和this赋值,结果都引发了ReferenceError错误
(3)RangeError
RangeError是当一个值超出有效范围时发生的错误。主要有几种情况,一是数组长度为负数,二是Number对象的方法参数超出范围,以及函数堆栈超过最大值。
new Array(-1)
// RangeError: Invalid array length
(1234).toExponential(21)
// RangeError: toExponential() argument must be between 0 and 20
(4)TypeError
TypeError是变量或参数不是预期类型时发生的错误。比如,对字符串、布尔值、数值等原始类型的值使用new命令,就会抛出这种错误,因为new命令的参数应该是一个构造函数。
new 123
//TypeError: number is not a func
var obj = {}; obj.unknownMethod()
// TypeError: undefined is not a function
上面代码的第二种情况,调用对象不存在的方法,会抛出TypeError错误。
(5)URIError
URIError是URI相关函数的参数不正确时抛出的错误,主要涉及encodeURI()、decodeURI()、encodeURIComponent()、decodeURIComponent()、escape()和unescape()这六个函数。
decodeURI(‘%2’)
// URIError: URI malformed
(6)EvalError
eval函数没有被正确执行时,会抛出EvalError错误。该错误类型已经不再在ES5中出现了,只是为了保证与以前代码兼容,才继续保留。
以上这6种派生错误,连同原始的Error对象,都是构造函数。开发者可以使用它们,人为生成错误对象的实例。
new Error(“出错了!”);
new RangeError(“出错了,变量超出有效范围!”);
new TypeError(“出错了,变量类型无效!”);上面代码表示新建错误对象的实例,实质就是手动抛出错误。可以看到,错误对象的构造函数接受一个参数,代表错误提示信息(message)。
这篇文章就到这里啦。不足之处,希望指正。
- 浅谈Chrome开发者工具--- Console面板与常见报错类型
- 浅谈Chrome开发者工具--- Element面板
- Chrome开发者工具详解(1)-Elements、Console、Sources面板 Chrome开发者工具面板
- Chrome开发者工具之:Elements、Console、Sources面板
- Chrome开发者工具详解(1)-Elements、Console、Sources面板
- Chrome开发者工具面板
- chrome开发者工具console
- Chrome开发者工具面板功能
- Chrome开发者工具详解(2)-Network面板
- Chrome开发者工具详解(3)-Timeline面板
- Chrome开发者工具详解(4)-Profiles面板
- Chrome开发者工具详解(3):Timeline面板
- Chrome 开发者工具详解(4):Profiles 面板
- Chrome开发者工具详解(2)-Network面板
- Chrome开发者工具详解(3)-Timeline面板
- Chrome开发者工具详解(4)-Profiles面板
- Chrome开发者工具之Network面板
- chrome开发者工具中console的用途
- Java单链表的实现
- 机器学习笔记四------集成学习
- 关于堆和栈的详细解释
- IDEA注册码/DataGrip注册码
- hibernate 缓存
- 浅谈Chrome开发者工具--- Console面板与常见报错类型
- 你好,层叠样式表
- Retrofit解决多个BaseURL切换的问题
- CentOS6.3安装AMP 和 phpMyadmin
- 99%的人都理解错了HTTP中GET与POST的区别
- [数论杂题] BZOJ1951: [Sdoi2010]古代猪文
- struts2_day01_03_struts2入门案例(一)(二)_05_struts2基本执行过程
- java中的==
- ELK日志监控系统搭建