一、什么是变量

• 变量(variables) 是计算机内存中存储数据的标识符,根据变量名称可以获取到内存中存储的数据。

• 变量相当于一个容器,内部可以存储任意类型的数据,使用变量时,用的是内部存储的数据。

二、为什么要使用变量

使用变量可以方便的获取或者修改内存中的数据。

三、变量声明

• 变量声明又叫做定义变量、创建变量。

• 变量在使用前,必须先有定义,如果没有定义,会出现引用错误。

• 定义方法:使用一个 var 的关键字进行定义,后面必须加一个空格,空格后面自定义变量名。

四、变量的命名规则和规范

• 规则 - 必须遵守的,不遵守会报错 由字母、数字、下划线、$ 符号组成,不能以数字开头。 字母区分大小写,A 和 a 表示不同。 不能是关键字和保留字,关键字指的是js中有特殊功能的小词语,比如 var、for 等; 保留字指的是现在没有特殊功能,但是将来新语法中有可能作为关键字使用。

• 规范 - 建议遵守的,不遵守也不会报错 变量名必须有意义 遵守驼峰命名法。多个单词组合而成的,第一个单词首字母小写,后面单词的首字母需要大写。 例如:userName、userPassword。

五、示例

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>js变量</title>
</head>
<body>
  <script>
    //console.log(c);//a is not defined 报错,a没有被定义,所以注意:使用没有定义的变量会报错。
    var a;
    var A;
    var o_o;
    var a1;
    var a$1_;
    //那我们打印任何一个已经声明的变量,结果都是undefined原因是我们定义的变量
    // 并没有给他进行赋值
    console.log(a);
    //var 1a; //报错,因为不能以数字开头
    //var var  //报错。因为不能使用关键字
  </script>
</body>
</html>

 六、变量赋值

• 变量定义之后,初始时没有进行赋值,内部有一个默认存储的值叫 undefined(未定义), 表示变量内部未赋值,可以存储数据了。

• 变量赋值的方式:通过等号 = 赋值,等号右边的值赋值给左边的变量。

• 注意:书写时,等号 = 两侧习惯书写一个空格,方便美观观看。

<script>
    //1.定义变量
    var a;
    //2.变量赋值
    a = 1;
    //3.使用变量,变量调用
    console.log(a);//1
</script>

七、变量赋值的几种情况

• 变量赋值时:内部可以存储任意类型的数据,甚至是一个变量。赋值过程中,等号右侧的 变量使用的是存储的数据。

• 注意:变量参与赋值过程时,等号左变右不变。等号左侧会被赋值,将来值发生变化,等号右侧的变量使用内部的值参与运算,自身不会发生变化。

示例一:

<script>
    //定义a变量
    var a;
    //给a变量赋值1
    a = 1;
    //定义b变量
    var b;
    //将a变量的值复制一份,赋值给b
    b = a;
    //所以a和b的打印结果都是1
    console.log(a);//1
    console.log(b);//1
</script>

示例二: 

<script>
    //定义a变量
    var a;
    //给a变量赋值1
    a = 1;
    //定义b变量
    var b;
    //将a的变量值复制一份,然后再这个基础上再增加3,然后赋值给左侧的b
    b = a + 3;
    console.log(b);//4
</script>

• 变量的赋初值过程可以与声明过程写在一起。

<script>
    //变量定义同时赋予初始值
    var a = 1;
</script>

• 变量内部的值,可以通过多次赋值的方法,进行更改。

• 变量一次定义,可以多次等号赋值。

<script>
    //变量定义同时赋予初始值
    var a = 1;//1
    a = 2;//2
    a = a + 5;//2+5=7
    console.log(a);//7
</script>

• 一个关键字 var 可以同时定义多个变量,并且都赋初值。多个变量之间用逗号进行分隔,最后一个变量后面使用分号进行结尾。 

<script>
    // 示例:使用一个var关键字,定义多个变量。
    var a = 1,
    b = 2,//注:换行书写看起来更美观,允许这样换行书写。
    c = 3
    console.log(a+b+c);//1+2+3=6
</script>