4.7js调试

console.time 是 JavaScript 中用于 测量代码执行时间 的方法,需与 console.timeEnd 配对使用

  • 语法

    console.time(label); // 开始计时

  • // 待测试的代码块 console.timeEnd(label);

  • // 结束计时并输出耗时(单位:毫秒)

  • 示例
    console.time("arrayTest"); 
    const arr = [];
    for (let i = 0; i < 100000; i++) {
      arr.push({  index: i });
    }
    console.timeEnd("arrayTest");  // 输出:arrayTest: 12.5ms 

  1. 标签匹配
    • time 和 timeEnd 的标签参数必须一致,否则无法正确计算时间。
    • 允许多个独立计时器同时运行,需使用不同标签区分。

调试方法

  1. 浏览器开发者工具
    • Chrome DevTools(推荐):
      • 按 F12 打开,支持断点调试、性能分析、内存监控。
      • Sources 面板:设置断点、单步执行(F10/F11)、查看调用栈。
      • Console 面板:实时执行代码、查看错误日志2
    • Firefox Developer Tools
      • 支持断点条件过滤、网络请求追踪,调试逻辑与 Chrome 类似。
  2. console 输出调试
    • 基础输出

      console.log(" 变量值:", value);

    • // 输出变量 console.error(" 错误:", err); // 高亮错误信息。

    • 高级用法
      • console.table(arr) :以表格形式打印数组/对象。
      • console.trace() :输出函数调用栈。
  3. 断点调试
    • debugger 语句

      function test() { debugger; // 执行至此暂停 // ... }

      支持所有现代浏览器(Chrome/Firefox/Edge)。
    • 条件断点:在开发者工具中右键行号设置触发条件(如 x > 100)。
  4. 错误捕获与处理try...catch
try {
  riskyOperation();
} catch (err) {
  console.log(" 错误详情:", err.stack);   // 输出堆栈信息。
}

代码提升

代码提升 是指 JavaScript 在执行代码之前,会将变量和函数的声明移动到其作用域的顶部。这意味着你可以在声明之前使用这些变量或函数,但它们的实际行为可能会有所不同,具体取决于使用的是 varlet 还是 const

使用 var 声明的变量
  • 声明提升:使用 var 声明的变量会被提升到其作用域的顶部,但赋值不会被提升。
  • 初始化为 undefined:在声明之前访问变量时,变量的值为 undefined
console.log(a); // 输出: undefined
var a = 10;
console.log(a); // 输出: 10

等价于:​

var a;
console.log(a); // 输出: undefined
a = 10;
console.log(a); // 输出: 10
 使用 <
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

chxii

小小打赏,大大鼓励!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值