# 变量
## 什么是变量
变量是一块内存空间,用于保存数据
> 计算机:CPU、内存、硬盘、输入输出设备
> 内存:存取速度快,数据易丢失
> 硬盘:存取速度慢,数据永久保存
> 计算机程序的运行,仅与内存打交道
## 如何使用变量
1. 声明(定义)变量
```js
var 变量名;
```
**变量声明后,它的值为undefined**
2. 给变量赋值
向变量的内存空间中存放数据
- 变量的值是可变的
变量可以被重新赋值,新的值会覆盖原来的值
- 变量的名称
在开发中,凡是需要自行命名的位置,叫做标识符
标识符的规范:
1) [必]只能以英文字母、下划线、$开头
2) [必]其他位置可以出现数字、英文字母、下划线、$
3) [必]不可以与关键字、保留词重复---------------保留字指在高级语言中已经定义过的字,使用者不能再将这些字作为变量名或过程名使用。
4) [选]标识符应该做到望文知义
5) [选]如果有多个单词,使用驼峰命名法,单词首字母大写
> 大驼峰:每个单词首字母大写
> 小驼峰:除第一个单词外,首字母大写
> 目前,使用的标识符都是小驼峰命名法。
> 宽度:width,高度:height,区域:area (quyu)
- 声明和赋值合并
变量的声明和赋值可以一条语句书写。
这是语法糖。
语法糖仅仅是为了方便代码书写或记忆,并不会有实质性的改变。
- 多个变量可以合并声明并赋值
语法糖
- **任何可以书写数据的地方,都可以书写变量**
- 若使用一个未声明的变量,会导致错误
例外:使用typeof得到类型时,可以是未声明的变量,得到的结果是undefined
- **JS中存在变量提升**
所有变量的声明,会自动的提到代码的最顶部
但是,这种提升,不会超越脚本块。
- JS中允许定义多个同名变量
同名变量,提升后会变成一个。
## 作业
定义三个变量,分别保存用户姓名、用户年龄、用户是否是vip,然后输出它们。