那里'It’我的函数中有未定义的东西

There's something undefined in my function

本文关键字:未定义 函数 我的 It 那里      更新时间:2023-09-26

我无法发现它!上面的代码在控制台"undefinedipsum"中返回

// At the end
// Call substring, passing "lorem ipsum dolor" to `input`, `6` to 
// `start`, and `10` to `end`.
var substring = function(input, start, end){
    var i;
    var subset;
    for(i=start; i<=end; i++){
        subset += input[i]
    }
    return subset;
}
console.log(substring("lorem ipsum dolor",6,10))
执行第一次串联时,

subset未定义(由于您将其与字符串连接,undefined将转换为字符串)。用空字符串初始化subset

var substring = function(input, start, end){
    var i;
    var subset = "";
    for(i=start; i<=end; i++){
        subset += input[i];
    }
    return subset;
}

然而,我认为真正的问题是,当已经存在一个非常好的String.prototype.substring方法时,你为什么要自己写这篇文章?

初始化变量subset

var subset ="";

您忘记初始化变量。

var subset = '';

否则,您将+=附加到一个不是字符串的东西上。

var x;
console.log(x+''); // "undefined"
x = x + 'a';
console.log(x);    // "undefineda"