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