Web/04-JavaScript基础/03-变量.md
2021-10-31 18:38:34 +08:00

286 lines
7.4 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
title: 02-变量
publish: true
---
<ArticleTopAd></ArticleTopAd>
## 常量字面量数字和字符串
**常量**也称之为字面量是固定值不可改变看见什么它就是什么
常量有下面这几种
- 数字常量数值常量
- 字符串
- 布尔常量
- 自定义常量
### 数字常量
数字常量非常简单直接写数字就行不需要任何其他的符号既可以是证书也可以是小数例如
```javascript
alert(996); //996是数字所以不需要加引号。
```
2字符串的字面量也很简单但一定要加上引号可以是单词句子等例如
```javascript
console.log('996');
console.log('千古壹号,永不止步');
```
温馨提示996 是数字'996'是字符串
3布尔字面量举例
```javascript
if (true) {
console.log('如果为真,就走这里面的代码);
}
```
### 总结
字面量都可以直接使用但是我们一般不会直接使用字面量否则比较麻烦比如说多个地方要用到同一个字面量还不如事先定义一个变量用来保存字面量
变量更方便我们使用所以在开发中都是通过变量去保存一个字面量而不会直接使用字面量
## 变量的概念
**变量**是用于存放数据的容器我们通过变量名获取数据甚至可以修改数据
变量还可以用来保存字面量
**本质**变量是程序在内存中申请的一块用来存放数据的空间
## 变量的声明和赋值
### 变量的声明/变量的定义
ES6 语法之前统一使用`var`关键字来声明一个变量比如
```javascript
var name; // 声明一个名为 name 的变量
```
PS** JavaScript 永远都是用 var 来定义变量** ES6 之前这和 CJava 等语言不同
### 变量的声明/定义ES6
ES6 语法及之后可以使用 `const``let`关键字来声明一个变量
```js
const name; // 定义一个常量
let age;
```
如果你想定义一个常量就用 const如果你想定义一个变量就用 let
### 变量的赋值
变量的赋值
```javascript
name = '千古壹号';
```
变量的声明和赋值写在一起举例如下
```javascript
var a = 100; // ES5语法
const b = hello; // ES6 语法
let b = world; // ES6 语法
```
如下图所示
![](http://img.smyhvae.com/20180116_2020.png)
var 是英语variant变量的缩写后面要加一个空格空格后面的东西就是变量名
- 定义变量var 就是一个**关键字**用来定义变量所谓关键字就是有特殊功能的单词
- 变量的赋值等号表示**赋值**将等号右边的值赋给左边的变量
- 变量名我们可以给变量任意的取名字
### 变量的初始化
有经验的程序员会把声明和赋值写在一起
```javascript
var a = 100; //声明并且赋值100
console.log(a); //输出100
```
声明一个变量并赋值 我们称之为**变量的初始化**
## 变量声明和赋值的补充
### 修改变量的值
一个变量被重新复赋值后它原有的值就会被覆盖变量值将以最后一次赋的值为准
举例
```javascript
var a = 100;
a = 110;
console.log(a); // 打印结果110。因为 110 覆盖了 100
```
### 同时声明多个变量
同时声明多个变量时只需要写一个 var 多个变量名之间用英文逗号隔开
举例
```javascript
var name = '千古壹号', age = 27, number = 100;
```
### 变量声明的几种特殊情况
变量建议先声明再使用否则可能会报错具体如下
**写法 1**先声明再赋值正常
```javascript
var a;
a = 100;
console.log(a); // 打印结果100
```
**写法 2**不声明只赋值正常
```javascript
a = 100;
console.log(a); // 打印结果100
```
**写法 3**只声明不赋值注意打印 undefined
```javascript
var a;
console.log(a); // 打印结果undefined
```
**写法 4**不声明不赋值直接使用会报错
```javascript
console.log(a); // 会报错
```
控制台会报错
![](http://img.smyhvae.com/20180116_2040.png)
**补充**写法 1 和写法 2 虽然都正常但这两种写法是有区别的等以后学习了变量提升的概念就明白了大多数情况下我们都是采用的写法 1
## 变量的命名规范
大写字母是可以使用的并且大小写敏感也就是说 A a 是两个变量
```javascript
var A = 250; //变量1
var a = 888; //变量2
```
我们来整理一下**变量的命名规范**
- 只能由字母(A-Za-z)数字(0-9)下划线(\_)美元符( $ )组成
- 不能以数字开头也就是说必须以字母(A-Za-z)下划线(\_)或者美元符( $ )开头变量名中不允许出现空格
- 不用使用 JS 语言中保留的关键字保留字作为变量名
- 建议用驼峰命名规则比如 getElementByIdmatherAndFatheraaaOrBbbAndCcc
- 变量名会区分大小写(javascript 是区分大小写的语言)
- 变量名长度不能超过 255 个字符
- 汉语可以作为变量名但是不建议使用因为 low
## 标识符关键字保留字
### 标识符
**标识符** JS 中所有的可以由我们**自主命名**的都可以称之为标识符
例如变量名函数名属性名参数名都是属于标识符通俗来讲标识符就是我们写代码时为它们起的名字
**标识符的命名规则**和变量的命令规则是一样的看上面一段就可以了
同样标识符不能使用语言中保留的**关键字****保留字**如下
### 关键字
**关键字**是指 JS 本身已经使用了的单词我们不能再用它们充当变量函数名等标识符
JS 中的关键字如下
```
break、continue、case、default、
if、else、switch、for、in、do、while、
try、catch、finally、throw、
var、void、function、return、new、
this、typeof、instanceof、delete、with、
true、false、null、undefined
```
### 保留字
**保留字**实际上就是预留的关键字意思是现在虽然还不是关键字但是未来可能会成为关键字同样不
能使用它们当充当变量名函数名等标识符
JS 中的保留字如下
```
abstract、boolean、byte、char、class、const、
debugger、double、enum、export、extends、final、float、goto
implements、import、int、interface、long、native、package、
private、protected、public、short、static、super、synchronized、throws、
transient、volatile
```
## 举例
**举例 1**交换两个变量的值
代码实现
```javascript
var a1 = 100;
var a2 = 200;
var temp;
temp = a1;
a1 = a2;
a2 = temp;
```
## 我的公众号
想学习**更多技能**不妨关注我的微信公众号**千古壹号**id`qianguyihao`
扫一扫你将发现另一个全新的世界而这将是一场美丽的意外
![](https://img.smyhvae.com/20200102.png)