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; 用于真/假值
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在这里未定义

记住,在Vegas...我是说,在函数内发生的事情,除非你明确返回它,否则它会留在函数内。

就这样,我的编程学徒!你已经升级了你的JavaScript技能。记住,熟能生巧,所以继续编程和实验。在你意识到之前,你将像专业的马戏团表演者一样熟练地处理变量!??‍♀️

快乐编程,愿变量永远在你身边!?✨

Credits: Image by storyset