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

为什么JavaScript反转字符串时console.log返回undefined?

排查你的reverseString函数返回undefined的问题

让我帮你拆解这段代码里的几个关键错误,正是它们导致函数返回了undefined:

1. 条件判断逻辑完全写反了

你写的if (!strr.length)意思是只有当传入的字符串长度为0时,才会执行里面的循环逻辑。但你传入的a是有内容的字符串(长度大于0),所以循环代码根本没被执行,result变量也没被初始化——这时候函数最后返回的result就是一个未定义的变量,自然输出undefined。

2. 循环的起始索引错误

就算条件判断改对了,你的循环起始值var i=strr.length也有问题:字符串的索引是从0到strr.length-1的,直接用strr.length作为起始值,charAt(i)会取到undefined(超出了字符串的有效索引范围)。

3. 方法名拼写错误

还有个小细节:chatAt应该是charAt,少了一个r,这个拼写错误会导致调用不存在的方法,同样会得到undefined。

修正后的代码

var a = "gsdgtrshghf"; 
function reverseString(strr){ 
    var result = ""; // 先初始化result,避免未定义
    for(var i = strr.length - 1; i >= 0; i--){ // 从最后一个有效索引开始循环到0
        var char = strr.charAt(i); // 修正方法名拼写
        result += char; 
    } 
    return result; 
} 
console.log(reverseString(a)) // 输出:fhghsrtgdsg

这样修改后,函数就能正确反转字符串啦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 10:23:37