成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

setTimeout()的返回值

figofuture / 1852人閱讀

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

談談我對js中timer的認識

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

復制代碼

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

復制代碼

 問:輸出是什么?

我的答案是打印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); 
};

這下會打印什么?

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

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

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

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

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

復制代碼

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

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

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

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/106500.html

相關文章

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

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

    callmewhy 評論0 收藏0
  • setTimeout&Promise&Async之間愛恨情仇

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

    Half 評論0 收藏0
  • JavaScriptthis

    摘要:函數(shù)的調(diào)用者是異步函數(shù),不會為回調(diào)函數(shù)指定值。值為表示在全局對象下執(zhí)行該函數(shù)執(zhí)行方法,返回一個函數(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)用時才有意義...

    charles_paul 評論0 收藏0
  • JavaScript 定時器

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

    王偉廷 評論0 收藏0
  • setTimeout和setInterval

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

    SnaiLiu 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<