在JS中返回parseInt给了我undefined

时间:2016-01-12 19:48:06

标签: javascript return parseint

这对我来说真的很奇怪。当我控制台在console.log(parseInt(a,2))中记录答案时,它会输出正确的值。但是当我在控制台日志中返回函数时,我得到了未定义。

JS代码

var addRec = function(a, b, not_first) {
    if (!not_first) return addRec(a.toString(2), b.toString(2), true);
    if (b === 0 || b === '0') {
        console.log(parseInt(a, 2)); // prints 3
        return parseInt(a, 2);
    }

    var carry = a & b;
    var a = a ^ b;
    var b = carry << 1;
    addRec(a, b, true);
};

console.log(addRec(1, 2)); // prints undefined

1 个答案:

答案 0 :(得分:2)

你忘了在功能结束时返回。一个不返回任何内容的函数会给undefined

var addRec = function(a, b, not_first) {
    if (!not_first) return addRec(a.toString(2), b.toString(2), true);
    if (b === 0 || b === '0') {
        console.log(parseInt(a, 2)); // prints 3
        return parseInt(a, 2);
    }

    var carry = a & b;
    var a = a ^ b;
    var b = carry << 1;
    return addRec(a, b, true); //return value
};