---
# System prepended metadata

title: 學習目標與先修基礎
tags: [學期 2-1, 封測班單元]

---

###### tags: `學期 2-1` `封測班單元`
# 學習目標與先修基礎 
嗨！歡迎進入 JavaScript 的學習章節，這個章節會為你在第二學期的實作打下基礎，我們會釐清程式語言的基本觀念，用意是幫助你**建立一個認知框架，以便在未來的實作中，一邊實作，一邊累積更深入的認識**。

我們假設進入這個章節的學生已經有以下基礎：

* 你能夠把簡單的值如字串、數字儲存到變數裡，並輸出到 console 裡
* 你能夠運用 if/else、迴圈來設計執行邏輯，例如一個簡單的猜數字遊戲
* 你使用過 Math 函式庫

上述幾點涵蓋在學期一的教學內容裡，如果你直接從學期二就讀，你可以考慮使用銜接教材 (詳情請洽學習教練團隊)，或者，你可以透過任何網路資源來進行自學。

在這個章節，我們會回訪一些你已經約略知道的重點，例如 JavaScript 奇怪的三個等號 `===` 和莫名其妙的 `undefined`。第一學期時我們比較重視讓同學趕快累積使用經驗，而在本學期，我們會比較重視你是否建立了正確的認知。

因此，在這裡我們會更進一步認識深入一點的觀念，包括：

* 基本型別 (primitives) 與物件的差異
* 從資料結構的角度來看陣列與物件
* JavaScript 裡的函式

首先，在這個單元裡，我們會介紹「基本型別」(primitive type) 和 JavaScript 裡「一些奇怪的值」如 `undefined`、`null` 和 `NaN`。

當這兩個主題放在一起講的時候，會呈現出 JavaScript 特別奇怪的部分，為了理解這些現象，就會需要談到 JavaScript 的運作機制，與相關的計算機理論。這些觀念的釐清，會幫助你在練習撰寫流程複雜的程式碼時，能清楚意識到資料在流程中的傳遞與變化，能夠避開基本的錯誤，或者能更加善用 JavaScript 的「優良部分」。

本章節會有較多的抽象觀念，說明的過程中不可避免地必須提到看似深奧的技術名詞，但名詞並非學習重點，若你暫時無法全部理解它們，請保持輕鬆的心情，把焦點放在情境和狀況，在腦海中保有印象，未來你隨時可以在實作中意識到問題時，再回頭深入探索本課程。


