TypeScript Academy · 课时

JavaScript 的痛点:运行时错误

探索只在运行时出现的常见 JavaScript 错误。

第 1 / 4 课13 个步骤

JavaScript 的痛点:运行时错误 是 CoddyKit 上的免费 TypeScript Academy 课时。 这是第 1 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 TypeScript Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 TypeScript Academy 课程共包含 4 节课。

欢迎

本课将探讨促使 TypeScript 诞生的运行时错误。JavaScript 很灵活,但这种灵活性也可能导致难以发现的错误。

无提示的类型强制转换错误

JavaScript 会静默地强制转换类型。将数字与字符串相加会返回字符串,而不是报错。这会在运行时造成意外行为。
// JavaScript
let total = 5 + '10'; // '510' not 15
console.log(total);   // '510'

访问未定义的属性

JavaScript 允许访问对象中不存在的属性。结果是 `undefined`,而不是错误,并且这种结果往往会悄无声息地继续传播。
const user = { name: 'Alice' };
console.log(user.age); // undefined — no error thrown

调用非函数值

如果变量保存的是非函数值却被调用,JavaScript 只会在运行时抛出 TypeError,而不是在开发期间报告错误。
const greet = 'hello';
greet(); // TypeError: greet is not a function

属性名中的拼写错误

属性名中的拼写错误会返回 `undefined`,且不会发出任何警告。这类错误在大型代码库中很难发现。
const config = { timeout: 3000 };
console.log(config.tiemout); // undefined — typo goes unnoticed

错误的参数类型

JavaScript 函数接受任意参数。传入错误类型会产生意外结果,而不是清晰的错误提示。
function double(n) { return n * 2; }
console.log(double('5')); // 10 — but '5' * 2 uses coercion

空值解引用导致崩溃

这是最常见的运行时崩溃之一:访问 null 或 undefined 上的属性。TypeScript 的严格空值检查可以防止这类错误。
let element = document.querySelector('.missing');
console.log(element.textContent); // TypeError: Cannot read properties of null

重构难题

在普通 JavaScript 中重命名函数或属性时,没有工具能够可靠地找到所有使用位置。TypeScript 的类型系统支持在大型代码库中安全地进行重构。

运行时错误与编译时错误

JavaScript 错误会在运行时出现,往往要到生产环境才会暴露。TypeScript 可以在编译时捕获其中许多错误,让它们在代码运行前就被发现。

缺少类型会削弱集成开发环境支持

没有类型信息,集成开发环境就无法可靠地提供自动补全、跳转到定义或重命名重构功能。类型信息可以显著提升开发工具的能力。

规模扩大后问题显现

小型脚本使用 JavaScript 通常没有问题。但当项目扩展到包含数千个文件并由许多贡献者共同维护时,缺少类型就会成为错误和维护负担的重要来源。

快速检查

TypeScript 的严格空值检查可以帮助防止哪种 JavaScript 行为?

回顾

JavaScript 的灵活性,包括类型强制转换、未定义属性以及缺少参数检查,会导致只能在运行时出现的隐蔽错误。TypeScript 旨在让这些错误在代码运行前就被捕获。
免费开始

用 AI 导师学习 TypeScript — 免费

在浏览器中编写并运行真实代码,获得全天候 AI 导师的即时帮助,并在网页或应用中继续学习。

课程
101
课程
352

常见问题解答

「JavaScript 的痛点:运行时错误」课时是免费的吗?

是的 — 「JavaScript 的痛点:运行时错误」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 TypeScript Academy 课程的其余内容,请升级到 CoddyKit PRO。 TypeScript Academy 课程共包含 4 节课。

「JavaScript 的痛点:运行时错误」这节课中我会学到什么?

探索只在运行时出现的常见 JavaScript 错误。 你通过在浏览器中直接运行的动手代码来练习 TypeScript Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 TypeScript Academy 需要有经验吗?

无需任何先前经验。CoddyKit 上的 TypeScript Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 1 节课,共 4 节。

「JavaScript 的痛点:运行时错误」课时需要多长时间?

大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。

我能在这节 TypeScript Academy 课中编写并运行代码吗?

能。每节 TypeScript Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。

此课程中的所有课时

  1. JavaScript 的痛点:运行时错误
  2. TypeScript 为 JavaScript 带来了什么
  3. 将 TypeScript 编译为 JavaScript
  4. 何时在项目中使用 TypeScript
← 返回 TypeScript Academy