Javascript 为什么我的函数会返回未定义的字符串

Javascript 为什么我的函数会返回未定义的字符串,javascript,Javascript,为什么我的函数会返回未定义的字符串和反向字符串 function revString(str) { var a,c; a=str.length-1; while(a>=0) { c = c + str[a]; a--; } return c; } console.log(revString("Google")); 我不确定它在哪里断裂。我知道同一个问题有很多答案,但我只想理解这里发生的错误 下面是小提琴 在函数开

为什么我的
函数
会返回未定义的字符串和反向字符串

function revString(str)
{
    var a,c;
    a=str.length-1;

    while(a>=0)
    {
       c = c + str[a];
       a--; 
    }
  return c;
}
console.log(revString("Google"));
我不确定它在哪里断裂。我知道同一个问题有很多答案,但我只想理解这里发生的错误

下面是小提琴

在函数开始时,您没有将
c
赋值给任何对象,因此它将启动
未定义的
。您只需要给它一个初始值:

function revString(str)
{
    var a,c='';
    a=str.length-1;

    while(a>=0)
    {
       c = c + str[a];
       a--; 
    }
  return c;
}
console.log(revString("Google"));

启动循环时,
c
未定义的
。您需要将其初始化为空字符串


undefined
添加到第一个字符会将
undefined
转换为字符串
“undefined”

您需要初始化
c
变量

c
一个初始值--
var a,c='第一次使用
c=c+str[a]通过循环
c
尚未给定值,因此其计算结果为
c=undefined+'e'使用调试器逐步检查代码。