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
- 标签匹配
time
和timeEnd
的标签参数必须一致,否则无法正确计算时间。- 允许多个独立计时器同时运行,需使用不同标签区分。
调试方法
- 浏览器开发者工具
- Chrome DevTools(推荐):
- 按
F12
打开,支持断点调试、性能分析、内存监控。 - Sources 面板:设置断点、单步执行(
F10
/F11
)、查看调用栈。 - Console 面板:实时执行代码、查看错误日志2。
- 按
- Firefox Developer Tools:
- 支持断点条件过滤、网络请求追踪,调试逻辑与 Chrome 类似。
- Chrome DevTools(推荐):
console
输出调试- 基础输出:
console.log(" 变量值:", value);
-
// 输出变量 console.error(" 错误:", err); // 高亮错误信息。
- 高级用法:
console.table(arr)
:以表格形式打印数组/对象。console.trace()
:输出函数调用栈。
- 基础输出:
- 断点调试
debugger
语句:
支持所有现代浏览器(Chrome/Firefox/Edge)。function test() { debugger; // 执行至此暂停 // ... }
- 条件断点:在开发者工具中右键行号设置触发条件(如
x > 100
)。
- 错误捕获与处理
try...catch
:
try {
riskyOperation();
} catch (err) {
console.log(" 错误详情:", err.stack); // 输出堆栈信息。
}
代码提升
代码提升 是指 JavaScript 在执行代码之前,会将变量和函数的声明移动到其作用域的顶部。这意味着你可以在声明之前使用这些变量或函数,但它们的实际行为可能会有所不同,具体取决于使用的是 var
、let
还是 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