JavaScript的变量
变量的概念
变量:是用于存放数据的容器。我们通过「变量名」获取数据,甚至可以修改数据。
变量还可以用来保存字面量。
本质:变量是程序在内存中申请的一块用来存放数据的空间。
定义变量及赋值
变量的声明/变量的定义
在ES6语法之前,统一使用var
关键字来声明一个变量。
在ES6语法之前,统一使用var
关键字来声明一个变量。
在ES6语法及之后,可以使用 const
、let
关键字来声明一个变量(目前不使用,后面会再详细介绍)
例:
var name; // 声明一个名为 name 的变量
注意:
- 一个变量名只能存储一个值
- 当再次给一个变量赋值的时候,前面一次的值就没有了
- 变量名称区分大小写(JS 区分大小写)
变量的赋值
变量的赋值:
name= '我是num'
变量的声明和赋值,写在一起,举例如下:
var a = 100; // ES5语法
var是英语“variant”变量的缩写。后面要加一个空格,空格后面的东西就是“变量名”:
-
定义变量:var就是一个关键字,用来定义变量。所谓关键字,就是有特殊功能的单词。
-
变量的赋值:等号表示赋值,将等号右边的值,赋给左边的变量。
-
变量名:我们可以给变量任意的取名字。
变量的初始化
把声明和赋值写在一起:
var a = 100; //声明,并且赋值100
console.log(a); //输出100
声明一个变量并赋值, 我们称之为变量的初始化。
变量声明和赋值的补充
修改变量的值
一个变量被重新复赋值后,它原有的值就会被覆盖,变量值将以最后一次赋的值为准。
举例:
var a = 100;
a = 110;
console.log(a); // 打印结果:110。因为 110 覆盖了 100
同时声明多个变量
同时声明多个变量时,只需要写一个 var, 多个变量名之间用英文逗号隔开。
举例:
var name = 'name', age = 27, number = 100;
变量声明的几种特殊情况
变量建议先声明,再使用。否则可能会报错。具体如下。
写法1、先声明,再赋值:(正常)
var a;
a = 100;
console.log(a); // 打印结果:100
写法2、不声明,只赋值:(正常)
a = 100;
console.log(a); // 打印结果:100
写法3、只声明,不赋值:(注意,打印 undefined)
var a;
console.log(a); // 打印结果:undefined
写法4、不声明,不赋值,直接使用:(会报错)
console.log(a); // 会报错
补充:写法1和写法2虽然都正常,但这两种写法是有区别的,等以后学习了「变量提升」的概念就明白了。大多数情况下,采用的写法1。
变量的命名规范
变量的命名规范:
-
只能由字母(A-Z、a-z)、数字(0-9)、下划线(_)、美元符( $ )组成
-
不能以数字开头。也就是说,必须以字母(A-Z、a-z)、下划线(_)或者美元符( $ )开头。变量名中不允许出现空格。
-
不用使用 JS 语言中保留的「关键字」和「保留字」作为变量名。
-
建议用驼峰命名规则。比如getElementById、matherAndFather、aaaOrBbbAndCcc
-
变量名会区分大小写(javascript 是区分大小写的语言)。
-
变量名长度不能超过255个字符。
-
汉语可以作为变量名。但是不建议使用,因为 low。
-
变量名尽量有意义(语义化)
JavaScript标识符、关键字、保留字
标识符
标识符:在JS中所有的可以由我们自主命名的都可以称之为标识符。
例如:变量名、函数名、属性名、参数名都是属于标识符。通俗来讲,标识符就是我们写代码时为它们起的名字。
标识符的命名规则和变量的命令规则是一样的。看上面一段就可以了。
同样,标识符不能使用语言中保留的关键字及保留字。如下。
关键字
关键字:是指 JS 本身已经使用了的单词,我们不能再用它们充当变量、函数名等标识符。
JS 中的关键字如下:
break do try typeof
case else new instanceof
catch in return var
continue for switch while
function this with default
if throw delete ......
保留字
保留字:实际上就是预留的“关键字”。意思是现在虽然还不是关键字,但是未来可能会成为关键字,同样不
能使用它们当充当变量名、函数名等标识符。
JS 中的保留字如下:
abstract int short boolean
export interface static byte
extends long super char
final native class float
throws const goto private
double import public ......