mirror of
https://github.com/qianguyihao/Web.git
synced 2024-11-01 13:34:46 +08:00
103 lines
4.2 KiB
Markdown
103 lines
4.2 KiB
Markdown
---
|
||
title: 04-标识符、关键字、保留字
|
||
|
||
---
|
||
|
||
<ArticleTopAd></ArticleTopAd>
|
||
|
||
## 变量的命名规则(重要)
|
||
|
||
JS是大小敏感的语言。也就是说 A 和 a 是两个变量,并非同一个变量,比如:
|
||
|
||
```javascript
|
||
var A = 250; //变量1
|
||
var a = 888; //变量2
|
||
```
|
||
|
||
我们来整理一下**变量的命名规则**,非常重要。
|
||
|
||
必须遵守:
|
||
|
||
- 只能由字母(A-Z、a-z)、数字(0-9)、下划线(\_)、美元符( $ )组成。
|
||
- **不能以数字开头**。必须以字母(A-Z、a-z)、下划线(\_)或者美元符( $ )开头。变量名中不允许出现空格。尤其注意,变量名中不能出现**中划线**`-`,很多人写了多年代码都不知道这一点,让人大跌眼镜。
|
||
- 严格区分大小写(JS 是区分大小写的语言)。
|
||
- 不能使用 JS 语言中保留的「关键字」和「保留字」作为变量名。下一段会讲。
|
||
- 变量名长度不能超过 255 个字符。
|
||
- 汉语可以作为变量名。但是不建议使用,因为 low。
|
||
|
||
建议遵守:
|
||
|
||
- 命名要有可读性,方便顾名思义。
|
||
- 建议用驼峰命名法。比如 getElementById、getUserInfo、aaaOrBbbAndCcc
|
||
- 赋值 `=` 符号的两边建议都加上空格。
|
||
|
||
**补充**:
|
||
|
||
1、不能以数字开头,是为了把数字和字母区分开。
|
||
|
||
2、JS底层保存标识符的时候,是采用的 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/20220401_1800.jpg)
|