亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

setTimeout()的返回值

figofuture / 1900人閱讀

摘要:為什么會(huì)有這么一個(gè)返回值呢,大家都知道執(zhí)行會(huì)被結(jié)束等待,它是靠什么結(jié)束的呢是,大家可能不太相信,可以這樣來嘗試下復(fù)制代碼復(fù)制代碼這樣就可以知道是什么了吧。

談?wù)勎覍?duì)js中timer的認(rèn)識(shí)

setTimeout()的返回值
今天遇到一個(gè)問題,題目如下:

復(fù)制代碼

var len=4;
while(len--){
  setTimeout(function(){
    console.log(len); 
  },0); 
  console.log(len); 
};

復(fù)制代碼

 問:輸出是什么?

我的答案是打印3,2,1,0,-1,-1,-1,-1

過程是先執(zhí)行console.log(len) ,執(zhí)行了4次之后,再執(zhí)行4次 setTimeout

問題很簡單,但是我就想把console.log(len) 去掉,如下:

var len=4;
while(len--){
  setTimeout(function(){
    console.log(len); 
  },0); 
};

這下會(huì)打印什么?

應(yīng)該是-1,-1,-1,-1對(duì)吧,但是很遺憾,在chrome的控制臺(tái)下顯示的是 15,-1,-1,-1,-1為什么多個(gè)15,我就很好奇的在執(zhí)行了一邊這段代碼,結(jié)果顯示的是19,-1,-1,-1,-1

再執(zhí)行就是23,-1,-1,-1,-1

很有有規(guī)律,這4個(gè)-1前面的數(shù)字是什么?我發(fā)現(xiàn)它是每次循環(huán)的次數(shù),但是剛打開我之前沒有執(zhí)行啊,第一次打印也不能是15啊

秉著知根知底的信念,就去谷歌了一下,發(fā)現(xiàn)這是setTimeout的返回值。為什么會(huì)有這么一個(gè)返回值呢,大家都知道setTimeout執(zhí)行會(huì)被clearTimeout結(jié)束等待,它是靠什么結(jié)束的呢?是ID,

大家可能不太相信,可以這樣來嘗試下:

復(fù)制代碼

var len=4;
while(len--){
  var time=setTimeout(function(){
    console.log(len); 
  },0); 
};
console.log(time);

復(fù)制代碼
這樣就可以知道time是什么了吧。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/106500.html

相關(guān)文章

  • JS setTimeout參數(shù)和返回問題

    摘要:定義和用法方法用于在指定的毫秒數(shù)后調(diào)用函數(shù)或計(jì)算表達(dá)式。參數(shù)示例回調(diào)函數(shù)時(shí)間參數(shù)參數(shù)參數(shù)結(jié)果返回值返回整型數(shù)值是的唯一標(biāo)識(shí)符可用于取消設(shè)置的函數(shù)。示例結(jié)果取消定時(shí)器即其返回值的作用為作為一個(gè)引用指向 定義和用法 setTimeout()方法用于在指定的毫秒數(shù)后調(diào)用函數(shù)或計(jì)算表達(dá)式。 參數(shù) 示例:setTimeout(回調(diào)函數(shù),時(shí)間,參數(shù)1,參數(shù)2,...,參數(shù)n) showImg(ht...

    callmewhy 評(píng)論0 收藏0
  • setTimeout&Promise&Async之間愛恨情仇

    摘要:但是提出標(biāo)準(zhǔn),允許腳本創(chuàng)建多個(gè)線程,但是子線程完全受主線程控制。只是將事件插入了任務(wù)隊(duì)列,必須等到當(dāng)前代碼執(zhí)行棧執(zhí)行完,主線程才會(huì)去執(zhí)行它指定的回調(diào)函數(shù)。之后全局上下文進(jìn)入函數(shù)調(diào)用棧。 setTimeout 一、setTimeout 初現(xiàn) 定義:setTimeout() 方法用于在指定的毫秒數(shù)后調(diào)用函數(shù)或計(jì)算表達(dá)式。 語法: setTimeout(code, millisec...

    Half 評(píng)論0 收藏0
  • JavaScriptthis

    摘要:函數(shù)的調(diào)用者是異步函數(shù),不會(huì)為回調(diào)函數(shù)指定值。值為表示在全局對(duì)象下執(zhí)行該函數(shù)執(zhí)行方法,返回一個(gè)函數(shù)作為回調(diào)函數(shù),并且將需要向它傳遞的作為參數(shù)。 重要 JavaScript的this是有函數(shù)求值是的調(diào)用者決定的 JavaScript的this是有函數(shù)求值是的調(diào)用者決定的 JavaScript的this是有函數(shù)求值是的調(diào)用者決定的 函數(shù)中的this 函數(shù)中的this在調(diào)用時(shí)才有意義...

    charles_paul 評(píng)論0 收藏0
  • JavaScript 定時(shí)器

    摘要:定時(shí)器方法相關(guān)方法有四種。返回值返回值是一個(gè)正整數(shù),表示定時(shí)器的編號(hào)。這個(gè)值可以傳遞給來取消該定時(shí)器。使用方法很簡單只有一個(gè)參數(shù),該參數(shù)為您要取消定時(shí)器的標(biāo)識(shí)符。用法很簡單當(dāng)代碼運(yùn)行到這行的時(shí)候,會(huì)取消所設(shè)置的定時(shí)器。 簡單介紹在JavaScript中定時(shí)器有兩個(gè) setInterval() 與 setTime...

    王偉廷 評(píng)論0 收藏0
  • setTimeout和setInterval

    摘要:一個(gè)頁面在瀏覽器顯示出來至少需要個(gè)線程,分別是引擎,渲染,事件觸發(fā)。其中事件觸發(fā)是獨(dú)立于其他個(gè)執(zhí)行的,而和是相互排斥的,也就是說同一個(gè)時(shí)間二者只有一個(gè)在工作。 作為DOM本身十分重要的2個(gè)異步執(zhí)行函數(shù),初學(xué)者感覺這個(gè)很不好理解,我簡單寫一寫我的理解 setTimeout (func, millisec); setInterval(func, millisec); 這兩個(gè)方法在形式看起來...

    SnaiLiu 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<