# [Live-log]_W4 ###### tags: `draft`, `real-time` ## Main - 今日 [22:30] 過後,錄下 5mins Youtube 影片 - 抽3位送書 - W4 講義裡面的小練習要回去自己試著寫 - W4 是總複習、不要放棄、盡量跟上 - W4 作業本來就要花兩週時間 - **函式**要多練習 - [10:05] W4 主線任務講解 - 【刻意練習】就算寫完,要練習 10 遍、練習錯誤、反覆練習 - 刻意練習自己不會的東西 - 先不要追求速度 - x100, x1,000 - 【Code Kata】 - 【Codewar】 - 【程式修煉】 - 練 10 遍很智障? - <s>你才智障</s> - 小組任務 - [10:15] 洧杰老師的進修課程 - 91 老師(joeychen) - 400 lines 的 code 練習極速開發 - https://tdd.best/courses/extreme-developing-202203/ - 下週建議錄影章節觀看到 forEach - 篩選資料 --- - 獎項:完課率 70% - 12月加碼3週:9、16、23日 - THE F2E 作品講解 Live 班 - Zoom 的課程登錄網址不一樣,後續會寄給有完課的同學 - 其餘獎項下週公開 <!-- 洧杰教課價碼 30 萬!? --> - 11月會公開畢業生薪資調查數據分析: - 必備技能: - CSR (Client-side Render) - Git - 前端必備:切版要好(Vue 不一定) --- ## [08:07] start - 參數=輸入 - 輸入(參數) -> 編譯(函式) -> 輸出(return or console) - 參數盡量不會太多(超過5個) - [08:30] 範例:如何寫一個相減功能的**函式** - 先寫基本小邏輯 - follow 「輸入、編譯、輸出」流程 - 找變因 - [08:35] - 函式的參數與變數不同,參數只活在函式的{}裡。 - 離開後函式裡面會被清空 - let 存活在大括號裡面時,外面呼叫無用 - [08:40-08:50] 補充術語: - **「let 宣告 的 變數作用域(scope) 在 區塊作用域(Block)內,而外面讀不到」** - 範例:會出現錯誤:無法重複宣告 ``` function numAdd(a, b) { let a = 5 console.log(a + b) } numAdd(4, 5) ``` - [08:40] 小組填答時間 - https://chalk-freedom-ec6.notion.site/Part-1-1-5-4eec2b31bccf4e49837beccde91a628f > ::: spoiler 答案 > - Ans:3, 2, 1, 2, 2 > > - [09:55] 第5題講解:沒有 return > ::: ## [08:50] QK time ## [08:55] 下半堂 - 觀念:hoisting - 函式好好寫放最上面就沒關係 - [09:00] 公布獎項 - [09:11] start - 講義 input, output 練習題目-字串相加 - 數字處理:運用函式 - 常用 ``` // 儲存運算後的資料 let data = 0 // 人數計算 function count(num) { data += num; // 運算 console.log(data) // 印出來 console.log(num ** 2) // 平方 2x2, 5x5, etc } ``` ### [09:23] BMI 解題流程實況 - **小步測試** - 不用一口氣到位 - 先求有再求好 - [09:29] 助教解題影片-葉子 - [09:31] 助教解題影片-Ray - VSCode 擴充套件:Quokka - 可以即時預覽 - 不用跟瀏覽器切來切去 - 判斷式小 bug ``` 1 < 2 < 3 // output: true // 把判斷式寫這樣會被自動轉型哦 ``` - [09:40] 練習題-檢查是否要帶雨具 - [09:42] 練習題-增加陣列資料 ``` let data = [] function add(str) { data.push(str) console.log(data) } ``` - [09:44] 練習題-增加物件資料 - Q:為什麼上一題不用 obj - 因為這題 output 需求要的資料是 obj ``` let data =[] function add(name, sex) { let obj = {} obj.name = name obj.sex = sex data.push(obj) console.log(data) } ``` - [09:48] 練習題-取得物件資料 ``` function checkBMIStates(status) { // let status = 'normal' console.log( `您的體重 ${bmiStatesData.[status].state}.指數為 ${bmiStatesData.[status].color}`) } ``` - [09:55] 函式做完事情,可以把 value 回傳到指定位置 - Q: console.log(), 記憶體? - 來不及惹、待補充 - VSCode 小技巧? - 提前 return 時,後續沒被執行的 console.log 也不會亮起來