You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JavaScript中如何通过拼接字符串访问全局预定义变量?

嘿,这个问题挺常见的,我来给你捋清楚怎么解决~

核心思路:利用全局对象访问动态变量名

你现在的代码打印的是字符串s0,而不是变量s0的值,原因是你只是把s和i拼接成了字符串,没有去访问对应的变量。要实现这个需求,关键是利用全局对象——在浏览器里所有全局变量都会挂载到window对象上,Node.js环境则对应global对象。

修改后的代码(浏览器环境)

// 先修正你原代码里的小问题:声明多个变量时不需要重复写var
var s0 = "Hello", s1 = "Bye";

// 把循环条件改成i < 2,这样才能遍历到s0和s1两个变量
for(var i = 0; i < 2; i++) {
  // 用方括号语法访问window对象的属性,属性名就是拼接出来的"s0"、"s1"
  console.log(window["s" + i]);
}

运行这段代码,控制台就会依次输出Hello和Bye啦~

如果是Node.js环境

只需要把window换成global就行:

var s0 = "Hello", s1 = "Bye";

for(var i = 0; i < 2; i++) {
  console.log(global["s" + i]);
}

更稳妥的替代方案(不依赖全局对象)

其实直接依赖全局对象不是最佳实践,尤其是在复杂项目里容易导致变量污染。更推荐的方式是把这些变量放到一个普通对象中,然后同样用方括号语法访问:

// 把字符串统一存到一个对象里
const stringStore = {
  s0: "Hello",
  s1: "Bye"
};

for(var i = 0; i < 2; i++) {
  console.log(stringStore["s" + i]);
}

这种方式更清晰,也更容易维护~

内容的提问来源于stack exchange,提问作者mrwadepro

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 09:45:13