使用console进行调试入门知识

1.1 概述

  • 调试程序,显示网页代码运行时的错误信息
  • 提供了一个命令行接口,用来与网页代码互动
  • 运行JavaScript命令

1.2 三种打开方式(chrome)

  • 按F12或者Control + Shift + i(PC平台)/ Alt + Command + i(Mac平台)
  • “工具/开发者工具”
  • “Inspect Element”

1.1 log(),info(),debug(),warn(),error() 打印

  • console.info()和console.debug()都是console.log方法的别名,用法完全一样
  • 用来与控制台窗口互动

1.1.1 Console.log

  • 用于在console窗口输出信息
    参数格式

第一种

  • 接受多个参数
  • 将它们的结果连接起来输出
  • 会自动在每次输出的结尾,添加换行符

第二种

  • 第一个参数是格式字符串(使用了格式占位符)
  • console.log方法将依次用后面的参数替换占位符,然后再进行输出
  • 不同格式的数据必须使用对应格式的占位符
   %s 字符串  %d 整数  %i 整数  %f 浮点数
   %o 对象的链接  %c CSS格式字符串
console.log('%cThis text is styled!','color: red; background: yellow; font-size: 24px;')

两种结合

console.log(' %s + %s ', 1, 1, '= 2')  // 1 + 1  = 2
console.log({foo: 'bar'})         // Object {foo: "bar"}
console.log(Date)            // function Date() { [native code] }

1.1.2 Console.warn警告

  • 输出信息时,在最前面加一个黄色三角,表示警告

1.1.3 Console.error错误

  • 输出信息时,在最前面加一个红色的叉,表示出错,同时会显示错误发生的堆栈

1.1.4 Console.table打印出对象表格

可以将某些复合类型的数据转为表格显示

var languages = [
  { name: "JavaScript", fileExtension: ".js" },
  { name: "TypeScript", fileExtension: ".ts" },
  { name: "CoffeeScript", fileExtension: ".coffee" }
];  console.table(languages);
  • 复合型数据转为表格显示的条件是,必须拥有主键
  • 对于数组来说,主键就是数字键
  • 对于对象来说,主键就是它的最外层键

1.1.5 Console.count调用次数

  • 用于计数,输出它被调用了多少次
  • 接受一个字符串作为参数,作为标签,对执行次数进行分类
console.count('cc')//cc: 1   console.count('cc')//cc: 2
dir(),dirxml()

1.1.6 Console.dir打印对象阅读格式

  • 用来对一个对象进行检查(inspect),并以易于阅读和打印的格式显示
console.dir({f1: 'foo', f2: 'bar'})
// Object
//   f1: "foo"
//   f2: "bar"
//   __proto__: Object
  • 该方法对于输出DOM对象非常有用,因为会显示DOM对象的所有属性

1.1.7 Console.dirxml将DOM节点树状图打印

  • 用于以目录树的形式,显示DOM节点
  • 如果参数不是DOM节点,而是普通的JavaScript对象,console.dirxml等同于console.dir

1.2 Console.assert(boolean,”字符串”)判断逻辑是否正确

  • 接受两个参数,第一个参数是表达式,第二个参数是字符串
  • 只有当第一个参数为false,才会输出第二个参数,否则不会有任何结果
    console.assert(typeof 11 === "number","11不是number类型");没有报错

1.3 time(“同样的字符串”),timeEnd(”同样的字符串”)计时

这两个方法用于计时,可以算出一个操作所花费的准确时间

1.3.1 Time

  • 表示计时开始,在程序最前面使用

1.3.2 timeEnd

  • 程序结束时使用,表示计时结束
  • 它们的参数是计时器的名称
  • 调用timeEnd方法之后,console窗口会显示“计时器名称: 所耗费的时间”

1.3.3 group(),groupend(),groupCollapsed()折叠

  • console.group和console.groupend这两个方法用于将显示的信息分组
  • 它只在输出大量信息时有用,分在一组的信息,可以用鼠标折叠/展开
  • console.groupCollapsed方法与console.group方法很类似,唯一的区别是该组的内容,在第一次显示时是收起的(collapsed),而不是展开的

1.4 trace(),clear()调用路径,清除

1.4.1 Console.trace

  • 显示当前执行的代码在堆栈中的调用路径

1.4.2 Console.clear

  • 用于清除当前控制台的所有输出,将光标回置到第一行

2命令行API

  • 在控制台中,除了使用console对象,还可以使用一些控制台自带的命令行方法。

2.1 $_

  • 返回上一个表达式的值

2.2 $0 - $4

  • 控制台保存了最近5个在Elements面板选中的DOM元素,$0代表倒数第一个,$1代表倒数第二个,以此类推直到$4

2.3 $(selector)

  • 返回一个数组,包括特定的CSS选择器匹配的所有DOM元素。该方法实际上是document.querySelectorAll方法的别名

2.4 $$(selector)取DOM

  • 返回一个选中的DOM对象,等同于document.querySelectorAll

2.5 $x(path)

  • 返回一个数组,包含匹配特定XPath表达式的所有DOM元素

2.6 nspect(object)取DOM和JS

  • 打开相关面板,并选中相应的元素:DOM元素在Elements面板中显示,JavaScript对象在Profiles面板中显示

2.7 getEventListeners(object)取对象和所有事件

  • 返回一个对象,该对象的成员为登记了回调函数的各种事件(比如click或keydown)
  • 每个事件对应一个数组,数组的成员为该事件的回调函数

2.8 keys(object),values(object)取数组键名和值

2.8.1 keys(object)

  • 返回一个数组,包含特定对象的所有键名

2.8.2 values(object)

  • 返回一个数组,包含特定对象的所有键值

2.9 monitorEvents(object[, events]),unmonitorEvents(object[, events])

2.9.1 monitorEvents(object[, events])监听对象和事件

  • 监听特定对象上发生的特定事件
  • 当这种情况发生时,会返回一个Event对象,包含该事件的相关信息

2.9.2 unmonitorEvents

  • 用于停止监听

monitorEvents(window, "resize");
monitorEvents(window, ["resize", "scroll"])
unmonitorEvents(window, 'resize');


####2.10监听同一大类事件(四个大类)
>######1. mouse:
”mousedown”, “mouseup”, “click”, “dblclick”, “mousemove”, “mouseover”, “mouseout”, “mousewheel”
######2. key:
”keydown”, “keyup”, “keypress”, “textInput”
######3. touch:
”touchstart”, “touchmove”, “touchend”, “touchcancel”
######4. control:
”resize”, “scroll”, “zoom”, “focus”, “blur”, “select”, “change”, “submit”, “reset”

####2.11 profile([name]),profileEnd()CPU性能测试
####2.11.1 Profil
> - 用于启动一个特定名称的CPU性能测试

####2.11.2 profileEnd
> - 用于结束该性能测试

###2.12其他方法
####2.12.1 clear()
> - 清除控制台的历史

####2.12.2 copy(object)
> - 复制特定DOM元素到剪贴板

####2.12.3 dir(object)
> - 显示特定对象的所有属性,是console.dir方法的别名

####2.12.4 dirxml(object)
> - 显示特定对象的XML形式,是console.dirxml方法的别名。

###3 debugger设置断点
> - 用于除错,作用是设置断点
- 如果有正在运行的除错工具
- 程序运行到debugger语句时会自动停下
- 如果没有除错工具
- debugger语句不会产生任何结果,JavaScript引擎自动跳过这一句
- 在Chrome浏览器中,当代码运行到debugger语句时,就会暂停运行,-
 自动打开控制台界面
>  

for(var i = 0; i < 5; i++){
console.log(i);
if (i === 2) debugger;
}

- 上面代码打印出0,1,2以后,就会暂停,自动打开控制台,等待进一步处理
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 201,468评论 5 473
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 84,620评论 2 377
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 148,427评论 0 334
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,160评论 1 272
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,197评论 5 363
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,334评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,775评论 3 393
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,444评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,628评论 1 295
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,459评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,508评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,210评论 3 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,767评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,850评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,076评论 1 258
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,627评论 2 348
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,196评论 2 341

推荐阅读更多精彩内容

  • 工厂模式类似于现实生活中的工厂可以产生大量相似的商品,去做同样的事情,实现同样的效果;这时候需要使用工厂模式。简单...
    舟渔行舟阅读 7,711评论 2 17
  • 参考基础教程的整理,方便记忆 一、Object对象 (O大写) 所有其他对象都继承自这个对象。Object本身也是...
    Viaphlyn阅读 2,300评论 0 0
  • 单例模式 适用场景:可能会在场景中使用到对象,但只有一个实例,加载时并不主动创建,需要时才创建 最常见的单例模式,...
    Obeing阅读 2,047评论 1 10
  • 忽往往唯郁终 自凋零以倾城之姿 奈何花许难缄默 爱由而封唇 痴心而落寞 只待漫天雪舞 看伊人盈盈若笑 窥镜中 红袖...
    朔枳阅读 212评论 4 3
  • 今天上岸阅读 146评论 0 1