iT邦幫忙

2025 iThome 鐵人賽

DAY 2
0
自我挑戰組

《轉職學習日記:JavaScript × Node.js × TypeScript × Docker × AWS ECS》系列 第 2

Day2 - 持續成長學習藍圖 - JavaScript (變數、型別、運算子、函式)

  • 分享至 

  • xImage
  •  

今天正式開始鐵人賽!第一天先來認識 JavaScript 的基礎:變數、型別、運算子和函式。


變數宣告:var / let / const

想像我們有三種方式存放東西:

var → 像是「可以到處亂放的抽屜」,有時候會不小心把別人東西蓋掉。
let → 像是「自己的小抽屜」,範圍只在你所在的房間。
const → 像是「上鎖的櫃子」,放進去之後不能換掉裡面的東西。

var a = 1;
let b = 2;
const c = 3;

b = 5;     // ✅ 可以換
// c = 10; // ❌ 報錯,const 鎖死了

原始型別 (Primitive Types)

JS 有七種最基本的型別,可以想像成不同「資料的形狀」:

  • string → "我今天心情不錯"
  • number → 42(考試分數)、3.14
  • boolean → true / false(有沒有吃飽)
  • null → 「我確定這裡是空的」
  • undefined → 「這裡還沒放東西」
  • symbol → 「專屬簽名的隱藏印章」
  • bigint → 「超大數字」像銀行轉帳的金額
let name = "小明";
let score = 95;
let pass = true;
let notYet;
let empty = null;

console.log(typeof name);   // "string"
console.log(typeof score);  // "number"
console.log(typeof pass);   // "boolean"
console.log(typeof empty);  // "object" (歷史 bug)

常見運算子

算術:算薪水 💰

let base = 30000;
let bonus = 5000;
let total = base + bonus;
console.log(total); // 35000

比較:考試成績 📖

let score = 80;
console.log(score >= 60); // true (及格)
console.log(score === "80"); // false (型別不同)

邏輯:吃飯狀態 🍔

let hungry = true;
let hasMoney = false;
console.log(hungry && hasMoney); // false (餓了但沒錢)

三元:買不買咖啡 ☕

let money = 50;
let decision = money >= 100 ? "買星巴克" : "先忍一下";
console.log(decision); // "先忍一下"

函式宣告 & 函式表達式

函式就像一個「小機器」,輸入東西 → 幫你處理 → 輸出結果。

宣告式函式

function add(a, b) {
  return a + b;
}
console.log(add(10, 20)); // 30

函式表達式

const multiply = function(a, b) {
  return a * b;
};
console.log(multiply(5, 6)); // 30

箭頭函式

const divide = (a, b) => a / b;
console.log(divide(100, 5)); // 20

實作練習:計算平均分數與最高分

假設有一群學生考試,我們要寫一個程式,幫忙算出 平均分數 和 最高分。

function analyzeScores(scores) {
  if (scores.length === 0) {
    return { average: 0, max: null };
  }

  let sum = 0;
  let max = scores[0];

  for (let s of scores) {
    sum += s;
    if (s > max) {
      max = s;
    }
  }

  let average = sum / scores.length;
  return { average, max };
}

// 測試:小明 80, 小美 95, 阿土 60
let scores = [80, 95, 60];
let result = analyzeScores(scores);

console.log(result);
// { average: 78.333..., max: 95 }

🎯 學習心得 / 今日收穫

第一天雖然都是基礎內容,但重新寫一遍才發現:

var 真的是坑王,果然還是 let / const 比較安心。

nullundefined 在專案裡常常搞混,要記得「一個是刻意清空,一個是還沒設定」。

===== 差一個等號,結果可以完全不一樣。

今天寫的小練習,用「分數」算平均跟最高分,看起來簡單,但這種邏輯其實常常用到,像是公司裡做報表或統計分析時,就是同一個思維。

今天的感覺就像是把工具箱裡的螺絲起子重新擦亮,以後才不會拧錯方向。🔧🚀


上一篇
Day1 - 持續成長學習藍圖
下一篇
Day3 - 持續成長學習藍圖 - JavaScript (物件、陣列操作)
系列文
《轉職學習日記:JavaScript × Node.js × TypeScript × Docker × AWS ECS》3
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言