当前位置: 首页 > news >正文

console对象与控制台

1. console对象

console对象是JavaScript的原生对象,提供了很多用于调试的方法,如console.log输出信息,console.count记录执行次数

console.log(console);

2. console的静态方法

2.1 console.log()、console.info()、console.debug()
console.log的使用

console.log('一行文字');

const name = 'jack';
const age = 21;
console.log(name,age); //jack,21

使用占位符

const name = 'ian';
const age = 21;

console.log('I am %s,i am %d years old',name,age);
//I am ian,i am 21 years old
  • %s 字符串
  • %d 整数
  • %i 整数
  • %f 浮点数
  • %o 对象的链接
  • %c css格式字符串
    由于js是弱语言,没有类型的静态校验,通常我们不会使用占位符,而是直接使用字符串变量或者模板字符串。
    console.info是console.log的别名,用法和console.log完全一致,console.debug和console.log的用法也基本一致

2.2 console.war()和console.error()
warn方法和error方法也是在控制台输出信息,它们与log方法的不同之处在于,warn方法输出信息时,在最前面加一个黄色三角,表示警告;error方法输出信息时,在最前面加一个红色的叉,表示出错。同时,还会高亮显示输出文字和错误发生的堆栈。其他方面都一样。

console.error('Error: %s (%i)', 'Server is not responding', 500)
// Error: Server is not responding (500)
console.warn('Warning! Too few nodes (%d)', document.childNodes.length)
// Warning! Too few nodes (1)

2.3 console.count()
console.count用于记录代码执行次数

    function foo(){
      count = console.count();
    };
    foo(); //default: 1
    foo(); //default: 2

count方法还接收一个字符串用于将计算结果进行分类

    function foo(){
      count = console.count('foo');
    };
    foo(); // foo: 1
    foo(); // foo: 2

    function bar(){
      count = console.count('bar');
    };
    bar(); // bar: 1
    bar(); // bar: 2
  </script>

2.4 console.dir()、console.dirxml()
console.dir()用于对一个对象进行检查,并以易于阅读的方式输出

const user = {name:'ian', age:21};
console.log(user); //{name: 'ian', age: 21}

console.dir(user);
// Object
//   name: "ian"
//   age: 21
//   __proto__: Object

console.dirxml主要用于以目录树的形式显示DOM节点

console.log(documnet.body);
console.dirxml(document.body);

2.5 console.assert()
console.assert接收两个参数第一个是布尔值,第二个是提示信息,当第一个参数为true的时候,就显示一个错误,但不会中断代码的执行

console.assert(true,'数组长度不能小于0')

2.6 console.time()、console.timeEnd
这两个方法可以计算出一段代码执行完所用的时间

   console.time();

   for(let i=0;i<10000;i++){
    console.log(i);
   };

   console.timeEnd();
   //default: 164.182861328125 ms

2.7 console.trace()、console.clear()
console.trace方法显示当前代码在堆栈种的调用路径

    function foo() {
      console.trace();
    };

    function bar() {
      foo();
    };
    bar();

//index.html:14 console.trace
//foo @ index.html:14
//bar @ index.html:18
//(anonymous) @ index.html:20

console.clear()用于清空控制台

3. 自定义console

console对象所有的方法都可以被覆盖,因此可以自定义自己的方法
重写console.log()方法,将其改为document.write

console.log = function(str){
 document.write(str);
};

设置连console对象本身也可以被修改

console = null; //null

4. 控制台命令行API

4.1 $_
$_返回上一个表达式的值

1 + 2 ;
$_; //3

4.2 $0-$4
$0-$4保存了最近5个在Element面板选中的元素,$0表示(最近访问)第一个,$1表示第二个以此类推

4.3 $(selector)
( s e l e c t o r ) 返回第一个匹配的元素 , 等同于 d o c u m e n t . q u e r y S e l e c t o r ( ) , 需要注意的是 (selector)返回第一个匹配的元素,等同于document.querySelector(),需要注意的是 (selector)返回第一个匹配的元素,等同于document.querySelector(),需要注意的是是可以被复写的。
$$(selector)相当于document.querySelectorAll()

4.4 $x(path)
$x(path)返回一个数组,包含匹配特定 XPath 表达式的所有 DOM 元素。

$x('//p[a]'); 
//返回所有包含a标签的p元素

4.5 inspect(obj)
inspect方法用于显示对象的具体信息

inspect(window);

4.5 keys()和values()

keys()以数组的形式返回对象的所有键名,values()以数组的形式返回对象的所有键值

const obj = {name:'ian',age:21};
keys(obj);
//['name', 'age']

values(obj);
//['ian', 21]

4.6 其它的命令

  • copy() 复制,某个值到粘贴板
  • clear() 清空控制台
  • dir(object):显示特定对象的所有属性,是console.dir方法的别名
  • dirxml(object):显示特定对象的 XML 形式,是console.dirxml方法的别名

相关文章:

  • JavaSE错题收集
  • 可复制的领导力-负面反馈流程及处理方式
  • 公众号网课查题接口系统
  • calcite 启发式优化器(HepPlanner)原理与自定义优化规则实现
  • 【SpringCloud】四、Spring Cloud Config
  • 基于AD7705的32路信号采集软件设计
  • 【设计模式】【第一章】【支付场景】【策略模式 + 工厂模式 + 门面模式 + 单例模式】
  • SpringCloud笔记(三)微服务应用
  • 翻金币项目 QT项目 (利用Qt 5.80 实现 )
  • Java项目:JSP员工出差请假考勤管理系统
  • OP-TEE driver(三):OP-TEE驱动中的数据结构体
  • 人工智能轨道交通行业周刊-第15期(2022.9.19-9.25)
  • python process模块的使用简介
  • 回调函数等作业
  • 不要再盯着大厂了,这16家中小厂我建议你也试试
  • $translatePartialLoader加载失败及解决方式
  • 〔开发系列〕一次关于小程序开发的深度总结
  • 5分钟即可掌握的前端高效利器:JavaScript 策略模式
  • gf框架之分页模块(五) - 自定义分页
  • JavaScript类型识别
  • JavaSE小实践1:Java爬取斗图网站的所有表情包
  • Java程序员幽默爆笑锦集
  • KMP算法及优化
  • node.js
  • Promise初体验
  • springMvc学习笔记(2)
  • TypeScript迭代器
  • Vue官网教程学习过程中值得记录的一些事情
  • 阿里云前端周刊 - 第 26 期
  • 给Prometheus造假数据的方法
  • 类orAPI - 收藏集 - 掘金
  • 理解在java “”i=i++;”所发生的事情
  • 码农张的Bug人生 - 见面之礼
  • 如何使用 OAuth 2.0 将 LinkedIn 集成入 iOS 应用
  • 三分钟教你同步 Visual Studio Code 设置
  • 使用 5W1H 写出高可读的 Git Commit Message
  • 新书推荐|Windows黑客编程技术详解
  • 原创:新手布局福音!微信小程序使用flex的一些基础样式属性(一)
  • 字符串匹配基础上
  • 长三角G60科创走廊智能驾驶产业联盟揭牌成立,近80家企业助力智能驾驶行业发展 ...
  • (5)STL算法之复制
  • (C#)Windows Shell 外壳编程系列4 - 上下文菜单(iContextMenu)(二)嵌入菜单和执行命令...
  • (function(){})()的分步解析
  • (M)unity2D敌人的创建、人物属性设置,遇敌掉血
  • (附源码)springboot社区居家养老互助服务管理平台 毕业设计 062027
  • (附源码)计算机毕业设计大学生兼职系统
  • (每日持续更新)信息系统项目管理(第四版)(高级项目管理)考试重点整理第3章 信息系统治理(一)
  • (生成器)yield与(迭代器)generator
  • (十五)使用Nexus创建Maven私服
  • (算法二)滑动窗口
  • (一)UDP基本编程步骤
  • (一)为什么要选择C++
  • (转) 深度模型优化性能 调参
  • (转载)利用webkit抓取动态网页和链接
  • .gitignore文件设置了忽略但不生效