# 🏅 Day 11 - 函式觀念一、二 依照下方教學練習,並回答問題。 以下題目請合併為一份 CodePen 繳交,並透過「註解」進行回答。 ### 觀念一:基本函式寫法教學 可參考課程影音「函式 function - 函式寫法教學」章節 1. 宣告、命名函式 ```javascript= // 在此 morningAction 是自定義的名稱 function morningAction() { // 定義函式執行內容 console.log("刷牙"); console.log("洗臉"); } ``` 2. 呼叫函式 ```javascript= morningAction(); morningAction(); ``` > 1. 函式撰寫完後,需要呼叫才會執行 > 2. 函式可以重複呼叫 ### 觀念二:函式裡面仍可以執行函式 可參考課程影音「函式 function - 函式裡面仍可以執行函式」章節 ```javascript= function dailyAction() { cleanHead(); console.log("出門"); console.log("回家"); cleanHead(); } function cleanHead() { console.log("刷牙"); console.log("洗臉"); } dailyAction(); ``` > 函式內部可以呼叫其他函式, > 可以重複利用程式碼、簡潔版面。 問題一 --- 1. 宣告一個函式,讓此函式執行後會印出字串 `"這是一個函式"` 2. 觀看下方程式碼,最後會印出什麼 ```javascript= function sayHello() { console.log("ㄋ好"); } console.log("Bye!"); ``` 3. 觀看下方程式碼,選出正確敘述 ```javascript= function sayHi() { console.log("Hi"); } sayHi(); sayHi(); /* 選項 1. 函式不能重複呼叫,會報錯 2. 最後會印出兩個 Hi 3. 只會執行一次,印出一個 Hi */ ``` 問題二 --- 1. 觀看以下程式碼,利用函式觀念二,嘗試優化 `todayTask()` 函式 ```javascript= function todayTask() { console.log("觀看課程"); console.log("製作筆記"); console.log("每日任務"); console.log("觀看課程"); console.log("製作筆記"); console.log("主線任務"); console.log("觀看課程"); console.log("製作筆記"); } function watchAndNote() { console.log("觀看課程"); console.log("製作筆記"); } ``` 2. 觀看以下程式碼,最後會印出什麼 ```javascript= function printNumbers() { printOne(); console.log("11"); printOne(); } function printOne() { console.log("1"); } printOne(); ``` <!-- 解答: 問題一 1. 函式名稱可以隨意命名,盡量與執行內容相符即可 ``` function printString() { console.log("這是一個函式"); } printString(); // 記得呼叫才會執行 ``` 2. Bye! 3. 選項 2 問題二 1. ``` function todayTask() { watchAndNote(); console.log("每日任務"); watchAndNote(); console.log("主線任務"); watchAndNote(); } function watchAndNote() { console.log("觀看課程"); console.log("製作筆記"); } ``` 2. 1 (原因:printNumbers() 沒有呼叫!) -->