2015.12.17 HTML5真題練習
阿新 • • 發佈:2022-05-04
HTML5學堂:每天一道題,強壯程式設計師!今日主要涉及12.16日關於函式返回值的題目解答,以及一道涉及閉包的題目。
HTML5真題【2015.12.16】答案解析
12.16真題題目如下,最終輸出的結果是多少?
<script>
(function f(f){
return typeof f();
})(function(){ return 1; });
</script>
本題目的答案是:返回的內容為 —— "number"。
首先我們定義了一個函式,然後立即運行了這個功能函式。還記得匿名函式的執行方法嗎?——> "(function(){})();",此處我們也是通過同樣的方法,讓上面的那個函式立即執行。之後我們向這個函式中傳入了一個引數,在f這個功能函式當中,有一個名為f的引數,但是這個f和函式的f不是同一個意思,換句話說,可以換為如下的程式碼:
<script>
(function f(f2){
return typeof f2();
})(function(){ return 1; });
</script>
看如上的程式碼,應該就比最初的程式碼簡單一些了,f這個函式執行的結果是f2函式執行結果的資料型別(typeof)。f2這個函式其實就是我們最初傳入的那個函式——("function(){return: 1;}")執行的結果是1,typeof 1,自然就是"number"了。
HTML5真題【2015.12.17】題目
<script> var fn = function(i){ return function(){ return i++; } }(10); var a = fn(); var b = fn(); console.log(a); console.log(b); </script>
關於每日程式碼練習題的答案和解析,我們會在明日文章當中,釋出相關答案以及基本原理。(PS:週六日不釋出題目)