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

为何浏览器输出字符串前出现undefined?JS代码问题求助

为什么输出前会有undefined?

哈哈,这个问题我之前刚踩过坑!咱们来一步步拆解:

问题根源

你定义let newString;的时候,没有给它赋初始值,在JavaScript里,未初始化的变量默认值是undefined。当你在循环里执行newString += str[i].toUpperCase()时,第一次拼接其实是:

undefined + 'I' // 结果就是 "undefinedI"

之后每次循环都会在这个基础上继续拼接,最后自然就带着开头的undefined啦。

修复方法

方法1:初始化空字符串

直接把newString初始化为空字符串,这样第一次拼接就是空字符加大写后的第一个字符,不会有额外内容:

let str = 'i am in the easycode'; 
let newString = ''; // 这里加上初始值
for (let i = 0; i < str.length; i++) { 
  newString += str[i].toUpperCase(); 
} 
console.log(newString); // 输出:I AM IN THE EASYCODE

方法2:用原生字符串方法更简洁

其实JavaScript字符串本身就有toUpperCase()方法,根本不用手动循环,一行代码就能搞定:

let str = 'i am in the easycode';
let newString = str.toUpperCase();
console.log(newString); // 输出:I AM IN THE EASYCODE

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.06 08:22:30