~/VibeHandbook
$39

编程语言

developer.mozilla.org

JavaScript

是什么

JavaScript 是 web 的语言——唯一能在每个浏览器中原生运行的语言——并且通过 Node、Deno 和 Bun,它也是一个完整的服务端平台。它是动态类型、事件驱动且无处不在的,是全世界部署最广泛的编程语言。

优势

  • 处处可运行:浏览器、服务器、边缘函数,甚至嵌入式设备。
  • 无需编译步骤;编辑后刷新即可获得即时反馈。
  • 庞大的 npm 生态和巨大的社区。
  • 一流的异步支持,配合 promise 和 async/await

取舍

  • 没有静态类型——许多错误只有在运行时才暴露。
  • 历史遗留的小毛病:宽松相等(==)、this 绑定、隐式类型转换。
  • 缺乏纪律时很容易造成回调或依赖的失控蔓延。
  • 前后端同语言可能模糊架构边界。

何时使用

对于快速脚本、小项目、学习、原型,或不值得添加构建步骤的环境,可以选择纯 JavaScript。对于更大或更长期维护的项目,大多数团队会转向 TypeScript——但 JS 仍是让东西在浏览器或小型 Node 工具中跑起来的最快方式。

与 vibe coding 的契合度

AI 助手能流畅地处理 JavaScript,但由于缺乏类型,生成的代码可能会悄无声息地假设了错误的数据结构。引导 AI 使用现代语法(const/let、箭头函数、async/await、模块)和严格相等,并在数据结构重要的地方让它加上防御性检查或 JSDoc 注释。说明你的运行环境——浏览器还是 Node、ESM 还是 CommonJS——以确保 import 正确。由于没有编译器可以依靠,让它给出一个小的可运行示例或测试,以便你直接验证行为。

const fetchTitle = async (url) => {
  const res = await fetch(url);
  if (!res.ok) throw new Error(`HTTP ${res.status}`);
  const html = await res.text();
  return html.match(/<title>(.*?)<\/title>/i)?.[1] ?? "(no title)";
};

fetchTitle("https://example.com").then(console.log);