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

2015.12.18 HTML5真題練習

HTML5學堂:每天一道題,強壯程式設計師!今日主要涉及12.17日關於閉包的題目解答,以及一道涉及字串相關知識的題目。

HTML5真題【2015.12.17】答案解析

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>

該題目的結果是:10 11。

應該說考察的是閉包的最初“形態”。首先,fn()的結果是fn這個函式的返回值,也就是return後面的內容"function(){return i++;}",在這個函式當中,我們使用了i這個變數,那麼這個變數是從哪裡來的呢?該變數應當是通過引數傳遞進來,也就是10。通過閉包建立了一個臨時的空間,用於儲存i這個值,第一次呼叫的時候,return的是數字10,之後i進行了自增運算。之後再次呼叫時,i已經是11,自然就return了11這個值,之後i依舊是進行了自增運算。

HTML5真題【2015.12.18】題目

<script>
    var str = 'H5course';
    str += str.length;
    str.author = 'HTML5學堂';
    console.log(str.author);
</script>

關於每日程式碼練習題的答案和解析,我們會在明日文章當中,釋出相關答案以及基本原理。(PS:週六日不釋出題目)