javascript booster 通过编辑器左侧黄色灯泡触发重构,精准解决变量声明冗余、函数写法陈旧、条件逻辑啰嗦三类问题;灯泡仅在语义可重构位置(如var行、function关键字等)激活,且严格遵循安全边界,不破坏运行时行为。

JavaScript Booster 能直接解决变量声明冗余、函数写法陈旧、条件逻辑啰嗦这三类高频问题,不用记快捷键,光标停在哪,灯泡就亮在哪。
JavaScript Booster 的重构触发方式
它不依赖命令面板或快捷键,所有操作都靠编辑器左侧的黄色灯泡图标触发。这个灯泡只在语义可重构的位置出现,比如 var 声明行、function 关键字、if 语句块开头、字符串拼接表达式等位置。
- 光标必须落在目标语法节点的任意字符上(比如
var str1 = 'jspang.com';中任意位置),灯泡才会激活 - 如果灯泡没出现,说明当前代码结构不满足重构前提——例如
var被用于函数作用域内多次赋值,插件会主动禁用 “Convert to const” 选项 - 它不会在压缩后的代码、
eval内部、或带复杂副作用的表达式中触发,这是安全边界,不是 bug
箭头函数转换时的参数处理差异
从 function 到箭头函数的转换不是简单替换,它会根据参数个数和函数体结构自动选择最简形式:
- 单参数 + 单表达式返回 →
str => 'hi ' + str(省略括号和花括号) - 多参数或含解构 →
(a, { name }) => a + name(保留括号) - 函数体含多语句 →
str => { console.log(str); return 'hi ' + str; }(补全花括号和 return) - 原函数有
this绑定需求?插件会跳过转换并灰掉选项——它不破坏运行时行为
三元运算符替换 if-else 的限制条件
Replace with ?: 只在满足以下全部条件时可用:
- if 和 else 分支都只有一条赋值语句(如
str1 = '刘英'),且左右侧变量名一致 - 没有
return、throw、await等中断控制流的语句 - 分支内不包含函数调用以外的副作用(比如不触发 DOM 操作、不修改全局状态)
- 若 else 分支为空(
else { }),插件不会提供该选项——它不生成a ? b : undefined这类隐式返回
真正容易被忽略的是:JavaScript Booster 不做跨行推断。比如把 let a = 32; 拆成声明与赋值两行时,它只处理当前行的变量,不会自动把后续对 a 的引用也同步调整作用域——这得靠你人工确认上下文。它的“安全”体现在不越界,而不是全自动。










