2015.11.30 HTML5真題練習
阿新 • • 發佈:2022-05-03
HTML5學堂:每天一道題,強壯程式設計師!今日主要涉及昨日題目的解答,以及一道涉及函式的形參實參、arguments物件的題目
HTML5真題【2015.11.29】答案解析
昨日真題題目如下,問的是result和username,分別是多少?
<!doctype html> <html> <head> <meta charset="UTF-8"> <title>HTML5學堂 - H5course</title> <meta name="viewport" content="width=device-width,user-scalable=no"> <link rel="stylesheet" href="model/css/reset.css"> </head> <body> <div class="wrap"></div> <script> var username = 'HTML5學堂'; var result = '返回結果'; function joinIt(result) { result = result + 'http://www.h5course.com'; } username = joinIt(username); console.log(result); console.log(username); </script> </body> </html>
本題目的答案是:result結果依舊是'返回結果',而username結果為undefined。
答案解析:本題目主要涉及作用域和函式返回值的問題。
關於result:首先,我們在全域性中定義了一個result變數。其次,在函式當中,我們使用了形參,形參名也是result,由於函式是一個區域性作用域,所以,形參的result相當於是在區域性作用域當中建立了一個空間,用於儲存result。
區域性作用域中的result與全域性中的result是不同的兩個。在作用域的概念當中,全域性是不能訪問區域性的,換句話說,區域性內容的變化是不會影響到全域性變數的。在這個效果當中,無論函式中的result如何變化,都不會影響到全域性下的result,因此,result值為'返回結果'。
關於username:在程式碼當中,我們將一個函式的執行結果賦值給了username。此處需要注意的是,函式的執行結果是函式的返回值,也就是return的內容,當一個函式沒有書寫return,返回內容時,預設返回的是undefined。
相關知識:return語句的用法(函式的返回值)
HTML5真題【2015.11.30】題目
<!doctype html> <html> <head> <meta charset="UTF-8"> <title>HTML5學堂 - H5course</title> <meta name="viewport" content="width=device-width,user-scalable=no"> <link rel="stylesheet" href="model/css/reset.css"> </head> <body> <div class="wrap"></div> <script> function changeName(oldNum, newNum){ newNum = 5; console.log(arguments.length * oldNum + arguments.callee.length * arguments[1]); } changeName('12'); </script> </body> </html>
關於每日程式碼練習題的答案和解析,我們會在明日文章當中,釋出相關答案以及基本原理。