Web/04-JavaScript基础/04-标识符、关键字、保留字.md
2021-11-17 11:47:05 +08:00

106 lines
4.2 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: 04-标识符关键字保留字
---
<ArticleTopAd></ArticleTopAd>
## 变量的命名规则重要
JS是大小敏感的语言也就是说 A a 是两个变量大写字母是可以使用的比如
```javascript
var A = 250; //变量1
var a = 888; //变量2
```
我们来整理一下**变量的命名规则**非常重要
必须遵守
- 只能由字母(A-Za-z)数字(0-9)下划线(\_)美元符( $ )组成
- 不能以数字开头必须以字母(A-Za-z)下划线(\_)或者美元符( $ )开头变量名中不允许出现空格尤其注意变量名中不能出现**中划线**`-`很多人写了多年代码都不知道这一点让人大跌眼镜
- 严格区分大小写JS 是区分大小写的语言
- 不能使用 JS 语言中保留的关键字保留字作为变量名下一篇文章会讲
- 变量名长度不能超过 255 个字符
-
- 汉语可以作为变量名但是不建议使用因为 low
建议遵守
- 命名要有可读性方便顾名思义
- 建议用驼峰命名法比如 getElementByIdgetUserInfoaaaOrBbbAndCcc
**补充**
1不能以数字开头是为了把数字和字母区分开
2JS底层保存标识符的时候是采用的 Unicode 编码所以理论上讲在遵守命名规则的前提下utf-8中包含的所有内容都可以作为标识符
## 标识符
**标识符** JS 中所有的可以由我们**自主命名**的都可以称之为标识符包括**变量名函数名属性名参数名**都是属于标识符
通俗来讲标识符就是我们写代码时为某些东西起的名字类似于人出生的时候起个人名
**标识符的命名规则**和变量的命令规则是一样的关于变量的命名规则详见上一段
标识符不能使用语言中保留的**关键字****保留字**
## 关键字
**关键字**被JS赋予了特殊含义的单词也就是说关键字是 JS 本身已经使用了的单词我们不能再用它们充当变量名函数名等标识符关键字在开发工具中会显示特殊的颜色
JS 中的关键字如下
```bash
if、else、switch、break、case、default、for、in、do、while、
var、let、const、void、function、continue、return、
try、catch、finally、throw、debugger、
this、typeof、instanceof、delete、with、
export、new、class、extends、super、with、yield、import、static、
true、false、null、undefined、NaN
```
## 保留字
**保留字**实际上就是预留的关键字它们虽然现在还不是关键字但是未来可能会成为关键字同样不能用它们当充当变量名函数名等标识符
JS 中的保留字如下
```bash
enum、await
abstract、boolean、byte、char、double、final、float、goto、int、long、native、short、synchronized、transient、volatile、
arguments eval Infinity
# 以下关键字只在严格模式中被当成保留字在ES6中是属于关键字
implements、interface、package、private、protected、public
```
当你在网上搜JS保留字的时候你会找到很多版本每个版本都不一样各有各的说法**如果有不一样的地方请以我写的为准**
其实以谁的版本作为标准并不重要因为有些单词到底是**关键字**还是**保留字**并没有严格的界限JS 关于保留字的规则非常复杂上放列表中的一些单词在特殊情况下其实是可以使用的
我们只需要记住一点上面提到的所有**关键字****保留字**我们都不要用它们作为变量名或者参数名不要尝试这些奇怪的做法
如果你还想了解更多可以看这几个参考链接
- [知乎问答undefined是保留字吗](https://www.zhihu.com/question/472379938)
- 书籍[JavaScript 悟道](https://book.douban.com/subject/35469273/)》的第一章:保留字部分。
## 我的公众号
想学习**更多技能**不妨关注我的微信公众号**千古壹号**
扫一扫你将发现另一个全新的世界而这将是一场美丽的意外
![](https://img.smyhvae.com/20200102.png)