2015.12.23 HTML5真題練習
阿新 • • 發佈:2022-05-04
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:週六日不釋出題目)