javascript – 简单的js FOR循环返回’undefined’

前端之家收集整理的这篇文章主要介绍了javascript – 简单的js FOR循环返回’undefined’前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
不知道我在这里做错了什么;变量newStr应该只返回“Hello World”,但我得到的是:
"undefinedHello World"
undefined

JS

function translate2(x){
  var newStr;
  x = "Hello World";
  for(i=0; i<x.length; i++) {
    newStr+=x.charAt(i);
  }
  console.log(newStr);
}

解决方法

>在JavaScript中,如果未显式初始化变量,则默认情况下它将具有 undefined.这不是字符串,而是语言的基本类型.您可以通过打印来检查
var newStr;
console.log(newStr);
// undefined
console.log(newStr + "thefourtheye");
// undefinedthefourtheye

所以,只需用空字符串初始化变量,就像这样

var newStr = '';

>另外,请注意,在这一行

for(i=0; i < x.length; i++) {

我以前从未被宣布过.因此,将创建一个新的全局变量i.你可能不希望这样.因此,只需使用var关键字将变量作用域声明为当前函数,就像这样

for (var i = 0; i < x.length; i++) {

>除此之外,translate2是一个函数,当它被调用时,人们会期望它返回一些东西.但你没有明确地归还任何东西.因此,默认情况下,JavaScript会返回undefined.这就是为什么你在问题中得到第二个未定义的原因.要解决这个问题,请使用这样的return语句

function translate2(x) {
    var newStr = "";
    for (var i = 0; i < x.length; i++) {
        newStr += x.charAt(i);
    }
    return newStr;
}

猜你在找的JavaScript相关文章