性能优化与调试技巧 | 豆包MarsCode AI 刷题

106 阅读2分钟

1 如何优化 JavaScript 性能

1.1 减少循环中的活动

将语句或赋值放在循环之外

var i;
for (i = 0; i < arr.length; i++) {

相比,以下代码性能更好

var i;
var l = arr.length;
for (i = 0; i < l; i++) {

1.2 减少 DOM 访问

与其他语言相比,JavaScript 访问 HTML DOM 非常慢。

如果需要多次访问同一个 DOM 元素,最好只访问一次,并把它作为本地变量来使用:

示例

var obj;
obj = document.getElementById("demo");
obj.innerHTML = "Hello"; 

1.3 缩减 DOM 规模

HTML DOM中元素的数量少能提高页面加载速度,并加快渲染。

对于提高搜索 DOM(如 getElementsByTagName)时的性能很有帮助。

1.4 避免不必要的变量

不创建不打算存储值的新变量。

如,用

document.getElementById("demo").innerHTML = firstName + " " + lastName

替代

var fullName = firstName + " " + lastName;
document.getElementById("demo").innerHTML = fullName; 

1.5 延迟 JavaScript 加载

把脚本放在页面底部,使浏览器首先加载页面。

因为脚本在下载时,浏览器不会启动其他的下载,因而所有解析和渲染活动都可能会被阻塞。

HTTP 规范定义浏览器不能并行下载超过两种要素。

一个选项是在 script 标签中使用 defer="true"。defer 属性规定了脚本应该在页面完成解析后执行,但它只适用于外部脚本。

需要时可以在页面完成加载后,通过代码向页面添加脚本:

示例

<script>
window.onload = downScripts;

function downScripts() {
    var element = document.createElement("script");
    element.src = "myScript.js";
    document.body.appendChild(element);
}
</script>

1.6 避免使用 with

不使用 with 关键词。因为它会降低运行速度,还会混淆 JavaScript 作用域。

2 如何调试 JavaScript

2.0 JavaScript 调试器

所有现代浏览器都有内置的调试器。

通过 F12 键启动浏览器中的调试器,在调试器菜单中选择“控制台”。

内置的调试器可打开或关闭,将错误报告给用户。

我们也可以设置断点(代码执行被中断的位置),在代码执行时检查变量。

2.1 console.log() 方法

我们可以在调试窗口中使用 console.log() 来显示 JavaScript 的值:

示例

<!DOCTYPE html>
<html>
<body>

<h1>My First Web Page</h1>

<script>
a = 5;
b = 6;
c = a + b;
console.log(c);
</script>

</body>
</html>

2.2 设置断点

我们可以在调试窗口的 JavaScript 代码中设置断点。

运行到断点时,JavaScript 将停止运行,以便我们检查 JavaScript 的值。

检查后,我们可以通过取消断点来恢复代码运行。

2.3 debugger 关键词

debugger 关键词会停止 JavaScript 的执行,并调用调试函数。

功能类似于在调试器中设置断点。

将调试器打开后,使用了debugger 关键词的代码会在执行第三行前停止运行。

示例

var x = 15 * 5;
debugger;
document.getElementbyId("demo").innerHTML = x;