Javascript 为什么我的返回值没有定义?

Javascript 为什么我的返回值没有定义?,javascript,Javascript,我有这个功能: function getStartDate(dateToTest) { var dateToUse; // The function here doesn't matter. I get the same result even if I use "if (1 != 1)". if (!isAcceptableDate(dateToTest)) { dateToTest = dateToTest.addDays(1); get

我有这个功能:

function getStartDate(dateToTest) {
    var dateToUse;
    // The function here doesn't matter.  I get the same result even if I use "if (1 != 1)".
    if (!isAcceptableDate(dateToTest)) {
       dateToTest = dateToTest.addDays(1);
       getStartDate(dateToTest);
    }
    else {
        dateToUse = dateToTest;
        // It's not undefined here.......
        console.log(dateToUse);
       return dateToUse;
    }
}
此函数末尾的
console.log
中的
dateToUse
值正常。但是,当它到达此函数时,它突然变得未定义:

function getDates(startDate) {
    console.log(startDate);
    // Do a bunch of other stuff.
}
我是这样称呼这些东西的:

var baseDate = new Date();
var adjustDate = getStartDate(baseDate);
var dateArray = getDates(adjustDate);

为什么我的变量在一个函数的末尾有一个完全有效的值,当另一个函数调用时会丢失它的值?

Addreturn关键字在getStartDate函数之前

     return getStartDate(dateToTest);

在这两个分支的第一个分支中没有
return
语句。为了为未来制定更好、更有用的问题,有人能指出可能导致这一分支两次被否决的东西吗?我觉得有研究的证据和澄清的努力。只是想改进一下。谢谢!