前言: 变量变量, 也就是会变的量. 它是一个装数据的容器, 里面的数据是可以变的, 因此叫变量.

比如 "班长" 就是一个变量, 这学期可能是李雷, 那下学期就可能是韩梅梅了, 老师想安排同学任务, 想到的是班长, 而非某个具体的同学, 就像下面的 " a ", 我们让他加1, 但具体这个a的值是多少, 我们就可以灵活设置了.

var a = 1;
++a; // 2

第一步: 变量是一个会变的量

比如下面我们声明了一个变量 name, 那这个变量的值我们就可以随便设置了.

var name;
name = "李雷";
name = "韩梅梅";
name = 123;
name = [1,2,3,4];
name = {"id":1};
name = function () { alert("helloWorld") };
name = undefined;
name = null;
// ...

注意: 

1. 因为JavaScript是一门动态语言, 声明的变量是不限制数据类型的, 因此可以给一个变量赋值任意的数据类型, 比如: 字符串 / 数值 / 函数 / 对象等等;

2. 变量只需要声明一次, 虽然用 var 重复声明却不报错, 但这样写并不规范.

3. 变量声明时可以给它一个默认值, 也可以不写, 不写时变量的值为: undefined;

第二步: 变量是一个装数据的盒子

我们可以把计算机的内存看成是一个个紧密排列的格子, 每个格子里面都装了数据, 但是这些格子有成百上千个, 我们怎样知道哪个格子里面存了我们想要的数据呢? 在这个比喻下, 我们就可以将 变量名 看做是这些格子的 "标签";

上图中, 我们如果没有变量名, 那获取这个格子里面的数据无疑是大海捞针, 但我们给这个格子贴了一个标签, 这样我们想要它时, 就可以直接找到这个标签, 然后拿出里面的数据了.

注意: 

1. 计算机内存中存储数据的方法远比上图演示的要复杂的多, 这里仅是一个简单的比喻;

2. 一个标签能且只能标记一个格子, 但我们可以在这个格子里面放其他标签;

3. 两个不同的格子(内存地址), 不能有同一个标签名(变量名), 但同一个格子(内存地址)却可以有多个标签名(变量名)

02-13 20:57