3 回答

TA貢獻(xiàn)1806條經(jīng)驗 獲得超8個贊
當(dāng)您不從函數(shù)返回任何內(nèi)容時,隱式undefined返回。因此你會得到Y(jié)ou have undefined seconds.</p>
你必須從你的函數(shù)中返回一個值。
即使你從你的函數(shù)返回一個值,你也會得到你作為參數(shù)傳遞的相同值,因為setInterval本質(zhì)上是異步的,這意味著在時間間隔開始和結(jié)束時你的函數(shù)已經(jīng)返回了該值。
function startCountdown(seconds) {
let counter = seconds;
const interval = setInterval(() => {
console.log(counter);
counter--;
if (counter < 0) {
clearInterval(interval);
}
}, 1000);
return counter;
}
You have 5 seconds.</p>如果你5作為參數(shù)傳遞給你的函數(shù),你會得到。

TA貢獻(xiàn)1847條經(jīng)驗 獲得超11個贊
看看這段代碼:
function startCountdown(seconds) {
let counter = seconds;
const interval = setInterval(() => {
console.log(counter);
document.querySelector('#countdown').innerHTML = counter;
counter--;
if (counter < 0) {
clearInterval(interval);
}
}, 1000);
}
document.body.innerHTML = `<p>Quick! Click to stop the page from self destructing. You have <span id="countdown">5</span> seconds.</p>`;
startCountdown(5);
它有一個帶有id
. 您可以使用 JS 更新此元素。

TA貢獻(xiàn)1803條經(jīng)驗 獲得超3個贊
您可以提供一個回調(diào),作為回報提供秒數(shù):
function startCountdown(sec, cb) {
const itv = setInterval(() => {
cb(sec); // Call your Callback, pass sec as argument.
sec--;
if (sec < 0) clearInterval(itv);
}, 1000);
}
// Use your function:
startCountdown(5, (sec) => {
document.body.innerHTML = `<p>Quick! Click to stop the page from self destructing. You have ${sec} seconds.</p>`;
});
這樣你就可以重用你的startCountdown()代碼而不用硬編碼到它不相關(guān)的東西中。
添加回答
舉報