前言: 变量变量, 也就是会变的量. 它是一个装数据的容器, 里面的数据是可以变的, 因此叫变量.
比如 "班长" 就是一个变量, 这学期可能是李雷, 那下学期就可能是韩梅梅了, 老师想安排同学任务, 想到的是班长, 而非某个具体的同学, 就像下面的 " 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. 两个不同的格子(内存地址), 不能有同一个标签名(变量名), 但同一个格子(内存地址)却可以有多个标签名(变量名)