JavaScript - 變數

嘿,未來的編程超級巨星!? 權迎來到我們令人興奮的JavaScript變數世界之旅。作為你友善的鄰居計算機科學老師,我非常高興能指導你這個基本概念。所以,戴上你的虛擬思考帽,我們一起來探索吧!

JavaScript - Variables

JavaScript 變數

想像你正在籌備一個派對(因為誰不喜歡一個好的編程派對呢?)。你需要一個地方來存儲所有重要的信息 - 比如訂多少個披薩、誰會來、以及要玩什麼遊戲。在JavaScript中,變數就像你籌備派對時的儲存容器。它們保存我們讓程序運行的數據。

讓我們從一個簡單的例子開始:

let partyGuests = 10;

在這裡,我們創建了一個名為 partyGuests 的變數,並將其值設為10。這就像在便利貼上寫下,“我們預計有10位客人”。

在JavaScript中聲明變數

現在我們來谈谈如何真正創建這些變數。在JavaScript中,我們有三種方法來聲明變數:

  1. var - 舊學派的辦法(仍然有效,但有一些特殊之處)
  2. let - 最新的小夥伴(用於可能會變化的變數)
  3. const - 堅定的守護者(用於不會變化的變數)

讓我們看看它們在實際中的運用:

var oldSchoolCool = "我是var變數";
let modernAndFlexible = "我是let變數";
const rockSolid = "我是const變數";

var 想像成你祖父的黑膠唱片,let 想像成你可以重寫的CD,const 想像成你從不想要改變的最愛歌曲。

使用賦值運算符初始化變數

記得上數學課上的 = 號嗎?在JavaScript中,它被稱為賦值運算符。它就像一根魔法棒,將值放入我們的變數中:

let magicNumber;  // 聲明
magicNumber = 42; // 初始化

// 或者我們可以一次完成兩個步驟:
let theAnswerToEverything = 42;

專業提示:總是初始化你的變數。這就像在請朋友來之前確保冰箱裡有食物一樣!

JavaScript數據類型

JavaScript在存儲數據類型方面非常靈活。以下是一些主要類型:

數據類型 示例 描述
Number let age = 25; 用於數字值
String let name = "Alice"; 用於文字
Boolean let isAwesome = true; 用於true/false值
Undefined let mystery; 用於沒有值的變數
Null let emptyBox = null; 用於故意設為空的變數
Object let person = {name: "Bob", age: 30}; 用於複雜數據結構
Array let fruits = ["apple", "banana", "cherry"]; 用於項目列表

讓我們看看它們在實際中的運用:

let myAge = 30;
let myName = "JavaScript忍者";
let canCode = true;
let futureSkill;
let emptyMind = null;
let myProfile = {job: "編程師", hobby: "喝咖啡"};
let myTodoList = ["學習JS", "建立很棒的东西", "改變世界"];

console.log(typeof myAge);  // 輸出:number
console.log(typeof myName);  // 輸出:string
console.log(typeof canCode);  // 輸出:boolean
console.log(typeof futureSkill);  // 輸出:undefined
console.log(typeof emptyMind);  // 輸出:object(這是JavaScript中的一個特殊之處!)
console.log(typeof myProfile);  // 輸出:object
console.log(typeof myTodoList);  // 輸出:object(數組在JS中是特殊的對象)

JavaScript變數名稱(標識符)

給變數命名就像給寵物取名一樣 - 有規則,但你還是可以創造性地命名!以下是一些關鍵規則:

  1. 開始於一個字母、下劃線(_)或美元符號($)
  2. 可以包含字母、數字、下劃線或美元符號
  3. 大小寫敏感(myVar ≠ myvar)
  4. 不能使用保留關鍵字(如 letconstfunction 等)

好的例子:

let camelCase = "我以一個驼峰動物的名字命名";
let _underscoreFirst = "我以下劃線開頭";
let $dollarSign = "我覺得自己很有錢";
let mix123 = "我是一個字母和數字的混合";

不好的例子:

let 123abc = "我以數字開頭,所以我是無效的";
let my-variable = "連字符在變數名中是不允許的";
let let = "我是保留關鍵字,所以我不被允許使用";

JavaScript中的美元符號($)和下劃線(_)

美元符號($)和下劃線(_)在JavaScript中是特殊字符。它們通常用於庫名稱或特殊用途:

let $_$ = "我是一個有效的變數名,但看起來有點奇怪";
let _privateVariable = "我通常用來表示私有變數";
let $jQueryObject = "我通常在jQuery中用來表示jQuery對象";

JavaScript中未定義的變數值

當你聲明一個變數而沒有初始化它時,它會得到一個特殊的值,叫做 undefined

let myFuturecar;
console.log(myFuturecar);  // 輸出:undefined

// 這與null不同:
let myEmptyGarage = null;
console.log(myEmptyGarage);  // 輸出:null

undefined 想像成“我忘記這裡放一個值”,而 null 想像成“我故意留這裡空著”。

JavaScript變數的作用域

JavaScript中的作用域就像忍者的一樣 - 有些變數到處都看得見(全局作用域),而有些只在特定區域內看得見(局部作用域)。

let globalNinja = "我到處都看得見!";

function stealthMission() {
let localNinja = "我只有在這個函數內看得見";
console.log(globalNinja);  // 這個可以工作
console.log(localNinja);   // 這個也可以工作
}

console.log(globalNinja);  // 這個可以工作
console.log(localNinja);   // 這個會報錯 - localNinja在這裡未定義

記住,在維加斯...我是說,在函數內發生的事情,除非你明確返回它,否則會留在函數內。

那就是了,我的編程學徒!你剛剛升級了你的JavaScript技能。記住,熟能生巧,所以繼續編程和實驗。在你還不知道的時候,你會變得像專業的馬戲團表演者一樣玩轉變數!??‍♀️

快樂編程,願變數永遠在你這一邊!?✨

Credits: Image by storyset