發表文章

目前顯示的是 11月, 2022的文章

2-2 學習回顧

  OBJECTIVE 這個學期學到許多JavaScript的技能,尤其是Array的各種應用及函式的拆解,技術以外的是思考的訓練,寫虛擬碼、拆解功能讓邏輯更清楚在撰寫每項功能時的步聚。 REFLECTIVE 從實作過程中學到最多,只閱讀教案及觀看教學影片大部份都能理解教學的內容,但要實際的應用卻是另一回事,沒有真的動手做過一次沒辦法融會貫通,只是自己思考過才會真的內化成自己的知識。 INTERPRETIVE 繼續努力完成每一項實作,把教案的重點筆記起來,以後在復習或找資料能更快速得到解答。 DECISIONAL 持續學習,持續進步!

JavaScript Runtime (筆記)

圖片
  Calling Stack 用來保存「基本型態的資料」(比方來說 number, string…) JavaScript 用來排程(Execution Context)(決定什麼時候會做什麼事情) WEB APIs 透過瀏覽器的  window  物件可以用瀏覽器提供的方法 所以 JavaScript 本身沒有這些方法喔,只是接到了瀏覽器的 WEB API 所以才可以用它們 Callback Queue 這個零件負責保存「已經叫用」的 callback function。然後當 Calling Stack 空了的時候,Event loop 就會把排隊中的 callback function 傳給 Calling Stack ,以便執行 callback function 的任務。 Event Loop Event loop 顧名思義就是一個 loop,做的就是一直在觀察 Calling Stack 是否空了,如果空了就把排隊中的 callback 按照順序推進 Calling stack。  Event loop 一次只會推一個,當 Calling stack 空了它才會推另一個。 function multiply ( a , b ) { return a * b } function square ( n ) { return multiply ( n , n ) } function printSquare ( n ) { let squared = square ( n ) console . log ( squared ) } printSquare ( 4 ) 當在執行 JavaScript 的函式時,首先進入 stack 的會是這個檔案中全域環境的程式(這裡稱作  main );接著  printSquare  會被呼叫(invoke)因此進入堆疊(stack)的最上方;在  printSquare  中會呼叫  square()  因此  square()  會進入堆疊(stack)的最上方;同樣的, square  中呼叫了  mu...