JavaScript console对象与控制台使用示例详解

目录
  • 1. console对象
  • 2. console的静态方法
  • 3. 自定义console
  • 4. 控制台命令行API
    • 4.1 $_
    • 4.2 $0-$4
    • 4.3 $(selector)
    • 4.4 $x(path)
    • 4.5 inspect(obj)
    • 4.6 keys()和values()
    • 4.7 其它的命令

1. console对象

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

console.log(console);

2. console的静态方法

  • 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的用法也基本一致

  • 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)
  • 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>
  • 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);
  • console.assert()

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

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

这两个方法可以计算出一段代码执行完所用的时间

   console.time();
   for(let i=0;i<10000;i++){
    console.log(i);
   };
   console.timeEnd();
   //default: 164.182861328125 ms
  • 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.6 keys()和values()

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

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

4.7 其它的命令

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

到此这篇关于JavaScript console对象与控制台使用示例详解的文章就介绍到这了,更多相关JS console对象与控制台内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • 利用Js的console对象,在控制台打印调式信息测试Js的实现

    一次偶然的机会,打开百度的时候按下了F12,然后就见控制台里面输出了百度的招聘广告,感觉挺帅气的,再然后就有了这篇博文. 既然可以这样在控制台输出信息,那以后再调试Js的时候不就可以省去很多麻烦了嘛!避免不误人子弟,特意使用for(var i in console)查看了下各种浏览器控制台对console的支持, 结果如下: IE 11 控制台 log , info , warn , error , debug , assert , time , timeEnd , group , groupC

  • JavaScript console对象与控制台使用示例详解

    目录 1. console对象 2. console的静态方法 3. 自定义console 4. 控制台命令行API 4.1 $_ 4.2 $0-$4 4.3 $(selector) 4.4 $x(path) 4.5 inspect(obj) 4.6 keys()和values() 4.7 其它的命令 1. console对象 console对象是JavaScript的原生对象,提供了很多用于调试的方法,如console.log输出信息,console.count记录执行次数 console.l

  • JavaScript稀疏数组与孔hole示例详解

    目录 稀疏数组是什么 JavaScript数组天生就是稀疏数组 JavaScript数组稀疏特性带来的“怪异现象” slice会复制孔 forEach.every会跳过孔(不对孔调用回调函数) map不对孔调用回调函数,但是孔会保留 filter不对孔调用回调函数,但是孔会被过滤掉 join会将孔转化为一个空字符串进行拼接,与undefined一样 初始化无孔数组的方法 Array.apply(null, Array(n))的原理 稀疏数组是什么 在绝大多数JavaScript的实现中,数组是稀

  • JavaScript实现基础排序算法的示例详解

    目录 前言 正文 1.冒泡排序 2.选择排序 3.插入排序 4.快速排序 前言 文本来总结常见的排序算法,通过 JvavScript  来实现 正文 1.冒泡排序 算法思想:比较相邻两个元素的大小,如果第一个比第二个大,就交换它们.从头遍历到尾部,当一轮遍历完后,数组最后一个元素是最大的.除去最后一个元素,对剩下的元素重复执行上面的流程,每次找出剩余元素中最大的,遍历完后,数组是升序的 算法分析:总共需要进行length * (length - 1) / 2 次比较,所以时间复杂度为O(n^2)

  • JavaScript事件的委托(代理)的用法示例详解

    目录 简介 示例:事件委托 写法1:事件委托 写法2:每个子元素都绑定事件 示例:新增元素 写法1:事件委托 写法2:每个子元素都绑定事件 简介 说明 本文用示例介绍JavaScript中的事件(Event)的委托(代理)的用法. 事件委托简介 事件委托,也叫事件代理,是JavaScript中绑定事件的一种常用技巧.就是将原本需要绑定在子元素的响应事件委托给父元素或更外层元素,让外层元素担当事件监听的职务. 事件代理的原理是DOM元素的事件冒泡. 事件委托的优点 1.节省内存,减少事件的绑定 原

  • JavaScript中工厂函数与构造函数示例详解

    前言 当谈到JavaScript语言与其他编程语言相比时,你可能会听到一些令人困惑东西,其中之一是工厂函数和构造函数. 工厂函数 所谓工厂函数,就是指这些内建函数都是类对象,当你调用他们时,实际上是创建了一个类实例".意思就是当我调用这个函数,实际上是先利用类创建了一个对象,然后返回这个对象.由于 Javascript 本身不是严格的面向对象的语言(不包含类),实际上来说,Javascript 并没有严格的"工厂函数",但是在 Javascript中,我们能利用函数模拟类.来

  • JavaScript中new操作符的原理示例详解

    new的用处 new的作用是通过构造函数来创建一个实例对象,该实例与原型和构造函数之间的关系如下图所示: 先来总结一下 创建一个空对象 空对象的内部属性 __proto__ 赋值为构造函数的 prototype 属性 将构造函数的 this 指向空对象 执行构造函数内部代码 返回该新对象 详细说明 执行 new 操作时会依次经过以下步骤: 1.创建一个空对象 空对象是 Object 的实例,即 {} . let obj = {} 2.空对象的内部属性 __proto__ 赋值为构造函数的 pro

  • JavaScript 弱引用强引用底层示例详解

    目录 正文 1. 弱引用 2. 强引用 3. JavaScript 的垃圾收集 3.1 可达性 4. Set VS WeakSet 5. Map VS WeakMap 6. WeakMap 的应用 6.1 缓存 6.2 额外的数据存储 7. 小结 正文 内存和性能管理是软件开发的重要方面,也是每个软件开发人员都应该注意的方面.虽然弱引用很有用,但在 JavaScript 中并不经常使用.在 ES6 版本中,JavaScript 引入了 WeakSet 和 WeakMap. 1. 弱引用 与强引用

  • JavaScript学习笔记之惰性函数示例详解

    前言 本文主要给大家介绍了关于JavaScript惰性函数的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧. 需求 我们现在需要写一个 foo 函数,这个函数返回首次调用时的 Date 对象,注意是首次. 解决一:普通方法 var t; function foo() { if (t) return t; t = new Date() return t; } 问题有两个,一是污染了全局变量,二是每次调用 foo 的时候都需要进行一次判断. 解决二:闭包 我们很容易想到用闭

  • java教程之对象序列化使用基础示例详解

    这个过程也可以通过网络实现,可以先在Windows机器上创建一个对象,对其序列化,然后通过网络发给一台Unix机器,然后在那里准确无误地重新"装配".像RMI.Socket.JMS.EJB它们中的一种,彼此为什么能够传递Java对象,当然都是对象序列化机制的功劳. Java对象序列化机制一般来讲有两种用途: Java的JavaBeans: Bean的状态信息通常是在设计时配置的,Bean的状态信息必须被存起来,以便当程序运行时能恢复这些状态信息,这需要将对象的状态保存到文件中,而后能够

  • JavaScript相等运算符的九条规则示例详解

    简介 Java的等号有=,==,===三个运算符虽然都读成"等于",但概念是不一样的,=指的是赋值,在这篇文章中我们不会进行更多的介绍:==称为相等运算符,比较的是两个操作数值是否相等:===称为严格相等运算符,比较的是两个操作数是否是"同一个值". 针对相等运算符==和===,有两个对应的!=和!==运算符,这两个不相等运算符的运算结果是==和===运算结果的相反值. 严格相等运算符 严格相等运算符在对操作数进对比运算时,是不进行类型转换的.对比规则如下: 1.

随机推荐