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