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

2015.12.23 HTML5真題練習

HTML5學堂:每天一道題,強壯程式設計師!今日主要涉及12.22日關於作用域、預編譯執行知識的題目解答,以及一道涉及逗號運算子和for迴圈的題目。

HTML5真題【2015.12.22】答案解析

12.22真題題目如下,最終輸出的結果是多少?

<script>
    (function(){
        var user = author = 'HTML5學堂';
    })();
    console.log(user);
    console.log(author);
</script>

該題目的結果是:undefined 'HTML5學堂'。

這道題其實考核的是空間建立的問題,首先(function(){})是一個匿名函式。函式會建立一個區域性作用域,區域性作用域的內容在全域性中是不能訪問到的。var user = author = 'HTML5學堂';這句程式碼,表示的是連續賦值,但是注意此處只有user這個變數是通過var宣告的,換句話說,只有user這個變數的空間被建立在了匿名函式當中,而author會在執行到該行程式碼時再執行空間的建立,當執行到author='HTML5學堂'時,會在匿名函式當中尋找空間,但是此時沒有空間,就需要向其父級尋找,window下也沒有空間,此時在window下建立空間,之後並將'HTML5學堂'這個字串放置到這個空間當中。因此在全域性中尋找author,自然就可以找到了。

相關知識:JavaScript 執行機制之執行順序詳解

HTML5真題【2015.12.23】題目

<script>
    var sum = 0;
    for (var i = 0, j = 0; i < 3, j < 5; i++, j++) {
        sum += 1;
    };
    console.log(sum);
</script>

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