入门 - 变量

  • 作者:KK

  • 发表日期:2016.2.2


几所有乎编程语言里面都会有变量这个东西,所以一定要掌握好


变量声明

我们可以将变量理解为"内存数据",变量一般都需要先声明,后面再使用,声明变量的书写方式是var 变量名;,比如

var name;

上面代码就是声明了一个变量,其中name就是变量的名称,变量名是可以自己起的,只要以字母或者下划线开头,后面加下划线或者数字都可以,比如

var xxx;
var yy___;
var nihao_123;
var _ok__kkkk;

变量值

每个变量都有一个值,比如

var name = '小明';

这是声明了一个变量,并且 小明 就是变量的值,以不懂编程的人来理解就是:将"小明"两个文字存入到name这块内存中

请复制下面的代码到HTML文件中运行一下:

var name = '小明';
alert(name);

运行效果就是网页上弹出了一个窗口显示"小明"两个字

然而如果像开头那样只声明变量不设置值,那么也会有一个值,就是它值,比如

var name;
alert(name);

弹窗会显示值的内容为空的(弹窗自带的文字不算)


代码解释

上面其中第一句var name = '小明';的作用是声明一个叫做name的变量,变量的值就是"小明"两个字

第二句alert(name);的作用就是将这个变量的值显示给用户看,可以这么理解它的流程:

  1. 浏览器在内存里找到一个叫做name的内存

  2. 读取name的内存值,得到"小明"两个文字

  3. 将这两个文字交给alert命令去处理

  4. alert命令将这两个文字通过提示弹框的方式显示给用户看了

  5. 当用户点击确定时,弹框就消失了,只剩下显示网页内容

其中第2句你可以删除它的,这样就是只声明一个变量,但不拿它去做任何事情,于是浏览器不会给你任何反应,只是在那一瞬间确实增加了一个内存值


也可以不用var,但这是不好的习惯!

前面演示变量声明是前面带有var这个单词的,其实也可以不加,比如这样:

name = '小明';
alert(name);

当浏览器第一次遇到这个变量时就会自动补充声明,但这样实际是很不好的习惯

我只是跟你说明这样做也能声明变量,方便你以后看懂别人的代码为什么不加var也可以运行

但听我说,以我几年经验和大部分同行熟手都统一意见:声明变量要加var,因为声明的话有时候读代码还会以为这变量在前面的地方就有var声明过,这是第2次使用而已

这只是一个简单的理由,谈起细节来还不只是这么一句话,反正听我说的,加var声明变量!


只要声明一次

变量只要用var关键字声明一次就不需要再var声明了,比如

var name = '小明';
alert(name);
name = '小东';

这里第3行代码直接重新设置name变量的值就可以,不需要写成var name = '晓东'

不然你未来会吃大亏的,具体我后面再开专门的章节跟你说


变量赋值

变量是可以不断设置新的值的,通俗地说就是内存变量是可以不断地改写它的内存内容的,比如下面的代码:

var name = '小明';
name = '小东';
alert(name);
name = '小明';
alert(name);

上面第1句代码声明了name变量并且赋予默认值为"小明"

第2句将name这个变量赋值为"小东"

第3句通过alert命令调用弹窗进行提示(此时看到的提示内容是"小东",因为"小明"这个内存变量值已经被改写了)

第4句又再次赋值为"小明"并且下面再弹窗


变量互相赋值

我们可以申请很多很多变量(直到超出内存空间导致电脑变慢,慢到它都受不了为止!)

看代码:

var name = '小明';
var title = name;
alert(title);

var age = '18岁';
title = age;
alert(title);

解释:

  • 第1句声明了一个叫name变量并设置默认值是"小明"

  • 第2句声明了一个叫title的变量并设置默认值就是name的内存值,用另一种说法就是将name变量的值赋给了title变量

  • 第3句弹出提示title的内存值,由于第2句时title就的值就设置为name的值了,所以会提示"小时"

  • 第4句又声明一个叫age的变量,值是"18岁"三个字

  • 第5句将age的值赋给了title

  • 第6句又弹出提示title的值,于是看到"18岁"

有的同学看到这里会猛然拍一下大腿说"哦!这不就是代数嘛!"


一次性声明多个变量

var a,b,c; //用逗号隔开,一次性声明了a,b,c三个变量

var a=1,b=2,c; //声明3个变量,其中2个变量初始化数值

var a = 1,
    b = 2;	//有的人会习惯会2行写并且将代码排版弄整洁点,这也是好的,我比较提倡这个写法