摘要:為什么會有這么一個返回值呢,大家都知道執行會被結束等待,它是靠什么結束的呢是,大家可能不太相信,可以這樣來嘗試下復制代碼復制代碼這樣就可以知道是什么了吧。
談談我對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
過程是先執行console.log(len) ,執行了4次之后,再執行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,我就很好奇的在執行了一邊這段代碼,結果顯示的是19,-1,-1,-1,-1
再執行就是23,-1,-1,-1,-1
很有有規律,這4個-1前面的數字是什么?我發現它是每次循環的次數,但是剛打開我之前沒有執行啊,第一次打印也不能是15啊
秉著知根知底的信念,就去谷歌了一下,發現這是setTimeout的返回值。為什么會有這么一個返回值呢,大家都知道setTimeout執行會被clearTimeout結束等待,它是靠什么結束的呢?是ID,
大家可能不太相信,可以這樣來嘗試下:
復制代碼
var len=4; while(len--){ var time=setTimeout(function(){ console.log(len); },0); }; console.log(time);
復制代碼
這樣就可以知道time是什么了吧。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/106500.html
摘要:定義和用法方法用于在指定的毫秒數后調用函數或計算表達式。參數示例回調函數時間參數參數參數結果返回值返回整型數值是的唯一標識符可用于取消設置的函數。示例結果取消定時器即其返回值的作用為作為一個引用指向 定義和用法 setTimeout()方法用于在指定的毫秒數后調用函數或計算表達式。 參數 示例:setTimeout(回調函數,時間,參數1,參數2,...,參數n) showImg(ht...
摘要:但是提出標準,允許腳本創建多個線程,但是子線程完全受主線程控制。只是將事件插入了任務隊列,必須等到當前代碼執行棧執行完,主線程才會去執行它指定的回調函數。之后全局上下文進入函數調用棧。 setTimeout 一、setTimeout 初現 定義:setTimeout() 方法用于在指定的毫秒數后調用函數或計算表達式。 語法: setTimeout(code, millisec...
摘要:函數的調用者是異步函數,不會為回調函數指定值。值為表示在全局對象下執行該函數執行方法,返回一個函數作為回調函數,并且將需要向它傳遞的作為參數。 重要 JavaScript的this是有函數求值是的調用者決定的 JavaScript的this是有函數求值是的調用者決定的 JavaScript的this是有函數求值是的調用者決定的 函數中的this 函數中的this在調用時才有意義...
摘要:定時器方法相關方法有四種。返回值返回值是一個正整數,表示定時器的編號。這個值可以傳遞給來取消該定時器。使用方法很簡單只有一個參數,該參數為您要取消定時器的標識符。用法很簡單當代碼運行到這行的時候,會取消所設置的定時器。 簡單介紹在JavaScript中定時器有兩個 setInterval() 與 setTime...
摘要:一個頁面在瀏覽器顯示出來至少需要個線程,分別是引擎,渲染,事件觸發。其中事件觸發是獨立于其他個執行的,而和是相互排斥的,也就是說同一個時間二者只有一個在工作。 作為DOM本身十分重要的2個異步執行函數,初學者感覺這個很不好理解,我簡單寫一寫我的理解 setTimeout (func, millisec); setInterval(func, millisec); 這兩個方法在形式看起來...
閱讀 2568·2021-11-22 13:53
閱讀 4069·2021-09-28 09:47
閱讀 858·2021-09-22 15:33
閱讀 809·2020-12-03 17:17
閱讀 3315·2019-08-30 13:13
閱讀 2121·2019-08-29 16:09
閱讀 1176·2019-08-29 12:24
閱讀 2452·2019-08-28 18:14