setTimeout面试笔试题及理解
生活随笔
收集整理的這篇文章主要介紹了
setTimeout面试笔试题及理解
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
setTimeout() 方法用于在指定的毫秒數后調用函數或計算表達式。
語法:
setTimeout(code, milliseconds, param1, param2, ...) setTimeout(function, milliseconds, param1, param2, ...)直接console
for(var i = 0; i < 5; i++) {console.log(i); // 0 1 2 3 4 }var 定時器時間為1000
setTimeout是異步執行,在執行setTimeout時,i已經為5了
var 定時器時間為0
for(var i = 0; i < 5; i++) {setTimeout(function() {console.log(i) // 5 5 5 5 5 }, 0) }如果想要輸出 0 1 2 3 4
一 、利用setTimeout的第三個參數
var ,將i作為參數傳遞給setTimeout
二、使用IIFE(立即執行的匿名函數)
for(var i = 0; i < 5; i++) {(function(i){setTimeout(function() {console.log(i) // 0 1 2 3 4 }, 1000)})(i)}三、使用bind方法
bind()方法創建一個新的函數,在bind()被調用時,這個新函數的this被bind的第一個參數指定,其余的參數將作為新函數的參數供調用時使用。
bind MDN詳細解釋
四、es6中的let聲明的變量是具有塊級作用域
let 定時器時間為0
let 定時器時間為1000
let 語句聲明一個塊級作用域的本地變量,并且可選的將其初始化為一個值。
let聲明的變量只在其聲明的塊或子塊中可用,這一點,與var相似。二者之間最主要的區別在于var聲明的變量的作用域是整個封閉函數。
總結
以上是生活随笔為你收集整理的setTimeout面试笔试题及理解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 阿里云物联网平台web端,可视化开发,简
- 下一篇: LVT | ViT轻量化的曙光,完美超越