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

Node.js中for-in循环部署后报ReferenceError:string未定义问题求助

解决Node.js for-in循环部署时ReferenceError: string is not defined的问题

问题出在你for-in循环里的变量string没有声明:

// 错误写法:string未用let/const声明
for ( string in queue) { ... }

本地运行正常是因为本地Node环境可能处于非严格模式,未声明的变量会被自动当作全局变量处理;但部署环境大概率开启了严格模式(比如代码被打包工具开启严格模式,或者服务端配置强制严格模式),严格模式下不允许隐式创建全局变量,因此抛出ReferenceError: string is not defined。

修复方案很简单,给循环变量加上let或const声明即可:

const queue = {
    mobilize : 'test',
    mobileTurnOn: 'mobileTurnOn',
    pushAdminNotif: 'pushAdminNotif',
    diffLocationAlert: 'diffLocationAlert'
};
// 用const声明循环变量(每次迭代会重新绑定)
for (const string in queue) {
    console.log(string, "key")
    console.log(queue[string], "value")
};

另外建议日常开发中始终开启严格模式(在文件顶部加'use strict';),提前发现这类问题,避免本地和部署环境的行为差异。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 23:59:52