zoukankan      html  css  js  c++  java
  • JavaScript调试方法

    一、console.log和debugger调试方法

    这两种方法使我们一般最喜欢的调试方法

    一旦执行到这行代码,Chrome 会在执行时自动停止。

    你甚至可以使用条件语句加上判断,这样可以只在你需要的时候运行。

    if (thisThing) {
        debugger;
    } 

    这两种方法还有一个弊端,有人形容他们两的词语用到了肮脏,哈哈哈哈哈

    (之所以形容他肮脏主要是因为调试完后还要删除这段代码)

    二、console.table方法进行调试

    当遇到一个对象时,我们需要看到他的值,一般我们会使用到console.log方法;

    但是当遇到一个较为复杂结构的对象,输出的结果会不便于我们观察,这个时候我们就用到了console.table方法

    var animals = [
        { animal: 'Horse', name: 'Henry', age: 43 },
        { animal: 'Dog', name: 'Fred', age: 13 },
        { animal: 'Cat', name: 'Frodo', age: 18 }
    ];
     
    console.table(animals);
    

    三、console.time和console.end方法

    要确切地知道某段代码需要执行多长时间,尤其是在调试慢循环时,可能会非常有用。

    您甚至可以通过为该方法分配标签来设置多个定时器。让我们看看它是如何工作的:

    console.time('Timer1');
     
    var items = [];
     
    for(var i = 0; i < 100000; i++){
       items.push({index: i});
    }
     
    console.timeEnd('Timer1');
    

      

    四、console.trace方法——获取函数的堆栈跟踪信息

    函数执行的顺序——方便自己了解自己的代码,像是一个特定的为自己定制的菜单

    var car; 
    var func1 = function() {
        func2();
    } 
    var func2 = function() {
        func4();
    }
    var func3 = function() {
    } 
    var func4 = function() {
        car = new Car();
        car.funcX();
    }
    var Car = function() {
        this.brand = ‘volvo’;
        this.color = ‘red’;
        this.funcX = function() {
            this.funcY();
        }
        this.funcY = function() {
            this.funcZ();
        }
        this.funcZ = function() {
            console.trace(‘trace car’)
        }
    } 
    func1();
    

      

     五、debug(funcName)——快速查找要调试的函数

    在控制台中使用 debug(funcName),当到达传入的函数时,代码将停止。

    这个调试方法很快, 但缺点是不适用于私有函数或匿名函数。

    但除了私有和匿名函数, 这可能是找到调试函数的最快方法。

     (注意:这个函数和console.debug 函数是不同的东西。)

    var func1 = function() {
        func2();
    };
     
    var Car = function() {
        this.funcX = function() {
            this.funcY();
        }
     
        this.funcY = function() {
            this.funcZ();
        }
    }
     
    var car = new Car();
    

      

    六、Blackbox script——在调试过程中屏蔽不相关的代码

    现在,我们经常在应用中引入多个库或框架

    其中大多数都经过良好的测试且相对没有陷阱。

    但是,调试器仍然会进入与调试任务无关的文件。

    解决方案是屏蔽不需要调试的脚本。当然也可以包括你自己的脚本。

     

    七、在复杂的调试过程中寻找重点

    在更复杂的调试中,我们有时希望输出很多行。

    你可以做的事情就是使用更多控制台函数来保持良好的输出结构,

    console.logconsole.debug, console.warn, console.info, console.error

    但有时候,某些 JavaScrip 调试信息并不是你需要的。

    现在,可以自己美化调试信息了。

    在调试 JavaScript 时,可以使用 CSS 并自定义控制台信息:

    console.todo = function(msg) {
        console.log(‘ % c % s % s % s‘, ‘color: yellow; background - color: black;’, ‘–‘, msg, ‘–‘);
    }
     
    console.important = function(msg) {
        console.log(‘ % c % s % s % s’, ‘color: brown; font - weight: bold; text - decoration: underline;’, ‘–‘, msg, ‘–‘);
    }
     
    console.todo(“This is something that’ s need to be fixed”);
    console.important(‘This is an important message’);
    

      

    在 console.log() 中, 可以用 %s 设置字符串,%i 设置数字,%c 设置自定义样式等等,还有很多更好的 console.log() 使用方法。

    如果使用的是单页应用框架,可以为视图(view)消息创建一个样式,为模型(models),集合(collections),控制器(controllers)等创建另一个样式。

    也许还可以像 wlog,clog 和 mlog 一样发挥想象力!

    DO What You Want !
  • 相关阅读:
    jQuery火箭图标返回顶部代码
    jQuery火箭图标返回顶部代码
    jQuery火箭图标返回顶部代码
    jQuery火箭图标返回顶部代码
    jQuery火箭图标返回顶部代码
    jQuery火箭图标返回顶部代码
    仿京东左侧菜单
    京东首页右侧固定层
    jQuery中的事件与动画
    javaScript(四)
  • 原文地址:https://www.cnblogs.com/liumengdie/p/7940512.html
Copyright © 2011-2022 走看看