javascript booster插件通过光标旁黄色灯泡实现var/let自动转const,仅当变量未被重新赋值时才提供该选项;配合eslint与prettier配置,可自动拦截低级错误并一键修正。

直接装 JavaScript Booster 和 ESLint,再配好 Prettier,90% 的 JS 编写重复劳动和低级错误就能被自动拦截或一键修正——不需要写脚本、不依赖外部工具链,VSCode 本地就能闭环。
怎么让 var/let 自动转成 const?
靠 JavaScript Booster 的灯泡提示(Light Bulb)实现。它不是简单替换,而是基于作用域分析:只有确认变量后续没被重新赋值,才会建议转 const;如果检测到 a = 1; a = 2;,就不会出现该选项。
- 光标停在
var str = 'hello';这行任意位置,左侧会出现黄色灯泡图标 - 点击后选
Convert to const,立刻变成const str = 'hello'; - 若变量在 for 循环中声明(如
for (var i = 0; i ),它不会建议转 <code>const,因为语义不符 - 注意:它只作用于当前语句,不会跨函数或模块推断,所以别指望它自动改掉整个文件里所有可转的
var
为什么写 if-else 后总要手动改成三元?
因为没开 JavaScript Booster 的 Replace with ?: 提示。这个重构是安全的,但有明确前提:分支里不能有副作用(比如 console.log、fetch 调用、修改外部变量)。
DMap GL地图JSAPI(dmapgl)开发指南。用于编写、审查、调试 DMap 地图 API 代码,涵盖地图初始化、覆盖物渲染、图层管理、事件处理、控件交互等任务。当用户提及 dmap、dmapgl、jsapi‑gl 或相关地图开发需求时自动触发。
- 写完
if (x > 0) { a = 'yes'; } else { a = 'no'; },光标放在if关键字上 - 点灯泡 → 选
Replace with ?:,自动转成a = x > 0 ? 'yes' : 'no'; - 如果分支里有
console.log('hit'),插件会直接隐藏该选项,避免逻辑被破坏 - 它不处理嵌套 if(比如
if (a) { if (b) {...} }),这类得靠人判断是否适合扁平化
保存时自动格式化却没反应?检查这三个配置项
常见原因不是插件没装,而是 VSCode 设置没对齐。关键就三个配置项,缺一不可:
-
"editor.formatOnSave": true—— 必须开启,否则按 Ctrl+S 没用 -
"editor.defaultFormatter": "esbenp.prettier-vscode"—— 必须指定 Prettier 为默认格式化器,否则可能被 ESLint 或其他插件抢走控制权 -
"eslint.validate": ["javascript", "javascriptreact"]—— 如果只写了["javascript"],.jsx 文件里的 JS 就不会被 ESLint 校验,报错也不提示 - 额外提醒:
Prettier和ESLint规则冲突时(比如一个要分号、一个不要),必须在.eslintrc.js里加extends: ['prettier']关闭 ESLint 的格式类规则,否则保存时两边打架
代码片段补全为什么输 rcc 没反应?
VSCode 默认只对特定语言启用代码片段,JS 文件默认不激活 JavaScript and TypeScript Nightly 插件提供的 rcc(React Class Component)等高级片段。
- 打开一个
.js文件,按Ctrl+Shift+P→ 输入Change Language Mode→ 选JavaScript React - 此时再输入
rcc+Tab,就能生成带import React和render()的完整类组件 - 如果想全局生效,可在设置里搜
files.associations,添加"*.js": "javascriptreact",但注意这会让所有 .js 文件都用 React 语法高亮,普通脚本可能误报 - 自定义片段更可靠:在
Code → Preferences → Configure User Snippets → javascript.json里加一条,比如log补全为console.log($1);,永远有效
真正卡住人的往往不是功能有没有,而是灯泡为什么不亮、保存为什么没格式化、片段为什么不出现在 JS 文件里——这些全是配置项之间隐性依赖导致的,而不是插件本身坏了。










