JavaScript代码中加法赋值运算符+=返回null值问题咨询
问题原因
- 核心原因是
+=操作的目标对象embed.description未初始化初始值:执行加法赋值前embed.description的默认值为null,对null直接执行字符串拼接操作时不会自动转换为空字符串,最终就会出现赋值结果异常的问题。 - 次要排查点:如果
res.rowCount返回值为0,循环体完全不会执行,embed.description会保持初始的null值,最终调用接口时就会返回空/Null提示。
修复方案
在循环执行前先给embed.description赋空字符串初始值,同时可增加无数据的兜底提示,修改后的参考代码如下:
// 先初始化description为空白字符串 embed.description = "" // 增加无数据兜底逻辑 if (res.rowCount === 0) { embed.description = "暂无查询到的用户等级数据" } else { for (let i = 0; i < res.rowCount; i++) { let username = res.rows[i].user_id let level = res.rows[i].lvl let xp = res.rows[i].xp // 如果你不需要一级标题样式可以去掉行首的#,避免Embed显示字号过大 embed.description += `${i+1}. **${username}** **Level: ${level}** | **XP: ${xp}**\n` } } message.reply({ embeds: [embed]});
内容的提问来源于stack exchange,提问作者troxie
相关产品推荐
相关产品推荐

