为什么在反转字符串时Javascript console.log结果未定义?

为什么在反转字符串时Javascript console.log结果未定义?,javascript,string,undefined,repeat,Javascript,String,Undefined,Repeat,当我试图运行它时,它返回我“未定义”。我想知道这里有什么问题 看看: var a=“gsdgtrshghf”; 功能反向限制(strr){ var结果=”; 如果(strr.length!=null){ 对于(var i=strr.length-1;i>=0;i--){ var a=标准特征(i); 结果+=a; } } 返回结果; } 控制台日志(反向限制(a)); //更好 const reverse=str=>Array.from(str.reverse().join(“”); cons

当我试图运行它时,它返回我“未定义”。我想知道这里有什么问题

看看:

var a=“gsdgtrshghf”;
功能反向限制(strr){
var结果=”;
如果(strr.length!=null){
对于(var i=strr.length-1;i>=0;i--){
var a=标准特征(i);
结果+=a;
}
}
返回结果;
}
控制台日志(反向限制(a));
//更好
const reverse=str=>Array.from(str.reverse().join(“”);

console.log(reverse('foo主要原因是您正在声明
var result=”“
并从if外部返回(因此它变得未定义,因为它的范围仅在if语句内部)以及注释中提到的其他错误区
您有一个拼写错误,字符不是chatAt。您也可以简单地使用strr[i]另外,如果从strr.length开始,则应该执行i--i>=0,否则for循环将在条件检查时立即完成

var a=“gsdgtrshghf”;
功能反向限制(strr){
var结果=”;
if(strr.长度){
对于(变量i=strr.length-1;i>=0;i--){
var a=标准特征(i);
结果+=a;
}
}
返回结果;
}

log(reverseString(a))
您有一个输入错误,
charAt
not
chatAt
。您也可以简单地使用
strr[i]
获取字符。此外,如果从
strr.length
开始,则应执行
i--
i>=0
,否则for循环将在条件检查时立即完成
如果
逻辑也是向后的。如果字符串没有长度,则解析字符串没有意义,如果字符串有长度,则执行
结果未定义如此愚蠢的问题!请忽略我。谢谢所有帮助。您说您在尝试删除字符串中的重复项时出错,但您的代码是关于反转字符串的!有关如何反转字符串的完整答案
 var a = "gsdgtrshghf";
    function reverseString(strr){
       if (!strr.length){
          var result="";
          for(var i=strr.length;i>0;i++){
              var a=strr.chatAt(i);
              result+=a;
          }
       }return result;
   }
console.log(reverseString(a))