摘要:學(xué)堂碼匠計時器的第一個參數(shù),包含幾種不同的書寫方法,可以是函數(shù)名,匿名函數(shù),代碼字符串,還有一些面試題當(dāng)中會出現(xiàn)函數(shù)調(diào)用的書寫方式。
HTML5學(xué)堂-碼匠:計時器的第一個參數(shù),包含幾種不同的書寫方法,可以是函數(shù)名,匿名函數(shù),JS代碼字符串,還有一些面試題當(dāng)中會出現(xiàn)“函數(shù)調(diào)用”的書寫方式。
那么,這些不同的書寫方法分別表示什么呢?在計時器中出現(xiàn)的第一個參數(shù),作用域又是在哪里創(chuàng)建的?
計時器第一個參數(shù)的不同寫法 函數(shù)名的書寫方法這是最為常見的一種書寫方法,該方法表示的是,在固定毫秒之后,將這個函數(shù)名的函數(shù)添加到執(zhí)行隊列當(dāng)中,讓其執(zhí)行。
字符串式的書寫方法當(dāng)一個函數(shù)有參數(shù)時,很多人會采用這樣的調(diào)用方法。
Tips:參數(shù)為文字時,可以用單引號內(nèi)包雙引,或雙引號內(nèi)包單引的方式書寫。
setTimeout 和 setInterval 都可以接受字符串(作為第一個參數(shù)),但是并不推薦使用這種書寫方法。原因在于:為了能夠運行,會在代碼執(zhí)行時,將字符串通過eval方法進行轉(zhuǎn)換。
eval方法,其作用就是把字符串當(dāng)做JS去執(zhí)行。eval雖然能夠解決很多問題,有很大的作用,但是也廣為詬病,其性能問題,安全性問題,以及在JS嚴(yán)格模式與非嚴(yán)格模式的不同。
由于這些缺點,使得眾多開發(fā)者在項目和代碼中,盡量規(guī)避了對它的使用。
匿名函數(shù)的書寫方法當(dāng)函數(shù)有參數(shù)要傳遞,而又不能使用字符串式的書寫方法,此時,匿名函數(shù)的書寫方法就派上了用場。
函數(shù)調(diào)用的書寫方法這種書寫方法,本身是錯誤的,幾乎在實際開發(fā)當(dāng)中是無法找到的。當(dāng)然在偶爾會在面試當(dāng)中以“坑”的形式出現(xiàn)……
此處第一個函數(shù)會在執(zhí)行到計時器這行代碼時,立即執(zhí)行,而返回的是h5course函數(shù)的返回值,而非函數(shù)本身。如果函數(shù)返回默認(rèn)返回值undefined,setInterval也不會報錯。
第一個參數(shù)的作用域歸屬計時器的第一個參數(shù),默認(rèn)在全局作用域中執(zhí)行,因此函數(shù)內(nèi)的 this 將會指向window。
Tips:運行結(jié)果為true
Tips:運行結(jié)果為true
來幾道面試真題練練手 如下代碼打印結(jié)果是什么Tips:答案請見文章底部
碼匠 兩個字多久會打印出來Tips:答案請見文章底部
請說出如下代碼運行情況Tips:答案請見文章底部
總而言之,言而總之當(dāng)要執(zhí)行的函數(shù)沒有參數(shù)時,可以直接使用函數(shù)名調(diào)用
當(dāng)需要向回調(diào)函數(shù)中傳遞參數(shù)時,不要使用字符串做參數(shù),使用匿名函數(shù)做參數(shù),并在匿名函數(shù)內(nèi)部執(zhí)行回調(diào)函數(shù)。
第一參數(shù)的函數(shù)會在全局作用域中進行執(zhí)行
第一題:先輸出10,之后大概1秒后,同時輸出10個10。
第二題:約1000毫秒(即約1秒)
第三題:在函數(shù)執(zhí)行時,兩個li的背景顏色立即被設(shè)置為了紅色,經(jīng)過大概5000毫秒之后,控制臺報錯(兩個錯誤),錯誤內(nèi)容均為“red is not defined”
生活艱辛,代碼不易,但,不要忘記微笑!
梳理JS知識主干,高效率學(xué)習(xí)JavaScript!版權(quán)聲明:該圖來自“【美】莉茲·克里莫 (author)”的書籍《你今天真好看》
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/88722.html
摘要:運用防抖和節(jié)流可以有效降低代碼的執(zhí)行頻率,從而解決高頻率事件的頁面卡頓問題。在階段布局,最終確定顯示的位置和大小。在函數(shù)中,首先定義了一個空的定時器變量,用來計算時間間隔。還有一點要注意,在中一定要清楚定時器,不然會影響的條件判斷。 啥是節(jié)流? 節(jié)流是保證在一段時間內(nèi),代碼只執(zhí)行了一次。這個一段時間內(nèi)指的是不管用戶操作了幾次,最終僅執(zhí)行一次。比如說一個按鈕,用戶狂點按鈕,但是如果用節(jié)流...
摘要:運用防抖和節(jié)流可以有效降低代碼的執(zhí)行頻率,從而解決高頻率事件的頁面卡頓問題。在階段布局,最終確定顯示的位置和大小。在函數(shù)中,首先定義了一個空的定時器變量,用來計算時間間隔。還有一點要注意,在中一定要清楚定時器,不然會影響的條件判斷。 啥是節(jié)流? 節(jié)流是保證在一段時間內(nèi),代碼只執(zhí)行了一次。這個一段時間內(nèi)指的是不管用戶操作了幾次,最終僅執(zhí)行一次。比如說一個按鈕,用戶狂點按鈕,但是如果用節(jié)流...
摘要:文末評論送書,學(xué)委會用這個抽獎程序來進行嚴(yán)格抽獎,周六晚上點整定時抽獎并視頻公布出來,敬請期待。本文講的函數(shù)值傳遞問題,是寫程序經(jīng)常遇到,特別的是動態(tài)參數(shù)在高級框架中使用很廣泛。 ...
閱讀 2441·2021-11-23 09:51
閱讀 1867·2021-10-13 09:40
閱讀 1372·2021-09-30 10:01
閱讀 590·2021-09-26 09:46
閱讀 2234·2021-09-23 11:55
閱讀 1385·2021-09-10 10:51
閱讀 2240·2021-09-09 09:33
閱讀 2228·2019-08-29 17:25