JavaScript - 變數
嘿,未來的編程超級巨星!? 權迎來到我們令人興奮的JavaScript變數世界之旅。作為你友善的鄰居計算機科學老師,我非常高興能指導你這個基本概念。所以,戴上你的虛擬思考帽,我們一起來探索吧!
JavaScript 變數
想像你正在籌備一個派對(因為誰不喜歡一個好的編程派對呢?)。你需要一個地方來存儲所有重要的信息 - 比如訂多少個披薩、誰會來、以及要玩什麼遊戲。在JavaScript中,變數就像你籌備派對時的儲存容器。它們保存我們讓程序運行的數據。
讓我們從一個簡單的例子開始:
let partyGuests = 10;
在這裡,我們創建了一個名為 partyGuests
的變數,並將其值設為10。這就像在便利貼上寫下,“我們預計有10位客人”。
在JavaScript中聲明變數
現在我們來谈谈如何真正創建這些變數。在JavaScript中,我們有三種方法來聲明變數:
-
var
- 舊學派的辦法(仍然有效,但有一些特殊之處) -
let
- 最新的小夥伴(用於可能會變化的變數) -
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變數名稱(標識符)
給變數命名就像給寵物取名一樣 - 有規則,但你還是可以創造性地命名!以下是一些關鍵規則:
- 開始於一個字母、下劃線(_)或美元符號($)
- 可以包含字母、數字、下劃線或美元符號
- 大小寫敏感(myVar ≠ myvar)
- 不能使用保留關鍵字(如
let
、const
、function
等)
好的例子:
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