亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

無法調用模板文字中的函數

無法調用模板文字中的函數

DIEA 2023-03-18 15:02:07
我有一個業余問題,為什么我不能在模板文字中調用這個函數。代碼返回未定義,控制臺中沒有任何錯誤。我似乎看不出我做錯了什么,我是否缺少返回聲明?function startCountdown(seconds) {  let counter = seconds;  const interval = setInterval(() => {    console.log(counter);    counter--;    if (counter < 0) {      clearInterval(interval);    }  }, 1000);}document.body.innerHTML = `<p>Quick! Click to stop the page from self destructing. You have ${startCountdown(  5)} seconds.</p>`;
查看完整描述

3 回答

?
慕森卡

TA貢獻1806條經驗 獲得超8個贊

當您不從函數返回任何內容時,隱式undefined返回。因此你會得到You have undefined seconds.</p>


你必須從你的函數中返回一個值。


即使你從你的函數返回一個值,你也會得到你作為參數傳遞的相同值,因為setInterval本質上是異步的,這意味著在時間間隔開始和結束時你的函數已經返回了該值。


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作為參數傳遞給你的函數,你會得到。


查看完整回答
反對 回復 2023-03-18
?
回首憶惘然

TA貢獻1847條經驗 獲得超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 更新此元素。



查看完整回答
反對 回復 2023-03-18
?
繁星點點滴滴

TA貢獻1803條經驗 獲得超3個贊

您可以提供一個回調,作為回報提供秒數:


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()代碼而不用硬編碼到它不相關的東西中。


查看完整回答
反對 回復 2023-03-18
  • 3 回答
  • 0 關注
  • 129 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號