1. 程式人生 > 其它 >2015.12.17 HTML5真題練習

2015.12.17 HTML5真題練習

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:週六日不釋出題目)