如何在JavaScript中像Swift那样用代码块定义变量?
在JavaScript中实现类似Swift的立即执行闭包变量定义方式
在Swift里你可以用立即执行闭包一次性完成变量的声明和条件赋值,在JavaScript里有几种简洁的方式实现同样的效果:
1. 立即执行箭头函数(最贴近Swift写法)
这是和你Swift代码风格最匹配的方式,用立即执行的箭头函数包裹逻辑,直接把返回值赋值给变量,不需要重复写变量名:
const foo = (() => { if (bar) { return "42"; } else { return "43"; } })();
如果需要兼容不支持箭头函数的旧环境,可以用普通函数的立即执行表达式:
const foo = (function() { if (bar) { return "42"; } else { return "43"; } })();
2. 三元运算符(逻辑简单时简化写法)
如果你的条件逻辑只有两个分支且逻辑简单,用三元运算符会更紧凑:
const foo = bar ? "42" : "43";
不过如果后续需要扩展多分支或添加额外处理逻辑,还是立即执行函数的写法更易于维护。
对比你提到的写法
你之前采用的先声明变量再在分支中赋值的方式,确实需要重复书写变量名。而上面的两种方式都能像Swift那样,在一个代码块内完成变量的声明与赋值,保持代码的简洁性。
内容的提问来源于stack exchange,提问作者user3151675
相关产品推荐
相关产品推荐

