update: 关键字
This commit is contained in:
parent
5e154c3ac8
commit
4f8682f46a
@ -40,8 +40,6 @@ JavaScript是世界上用的最多的**脚本语言**。
|
||||
|
||||
虽然目前WebApp(Web应用)在功能和性能上的体验远不如Native App(原生应用),但是“在原生App中内嵌一部分H5页面”已经是一种趋势。
|
||||
|
||||
|
||||
|
||||
## 浏览器的介绍
|
||||
|
||||
浏览器是网页运行的平台,常用的浏览器有谷歌(Chrome)、Safari、火狐(Firefox)、IE、Edge、Opera等。如下图所示:
|
||||
@ -154,7 +152,6 @@ JavaScript运行在用户的终端网页上,而不是服务器上,所以我
|
||||
|
||||
备注:Node.js是用 JavaScript 开发的,现在也可以基于 Node.js 技术进行服务器端编程。
|
||||
|
||||
|
||||
### JavaScript的组成
|
||||
|
||||
JavaScript基础分为三个部分:
|
||||
@ -169,43 +166,12 @@ JavaScript基础分为三个部分:
|
||||
|
||||
### 特点1:解释型语言
|
||||
|
||||
JavaScript语言,不需要事先被翻译为机器码;而是边翻译边执行(翻译一行,执行一行)。
|
||||
JavaScript 是解释型语言,不需要事先被翻译为机器码;而是边翻译边执行(翻译一行,执行一行)。
|
||||
|
||||
什么是「解释型语言」?详见下一段。
|
||||
|
||||
> 由于少了实现编译这一步骤,所以解释型语言开发起来尤为方便,但是解释型语言运行较慢也是它的劣势。不过解释型语言中使用了JIT技术,使得运行速度得以改善。
|
||||
|
||||
### 补充知识:编程语言的分类
|
||||
|
||||
> 所谓的“翻译”,指的是编译成计算机能够执行的指令。
|
||||
|
||||
**编译型语言**:
|
||||
|
||||
- 定义:事先把所有的代码一次性翻译好,然后整体执行。
|
||||
- 优点:运行更快。
|
||||
|
||||
- 不足:移植性不好,不跨平台。
|
||||
|
||||
- 编译型语言举例:c、c++
|
||||
|
||||
比如说,c语言的代码文件是`.c`后缀,翻译之后文件是`.obj`后缀,系统执行的是 obj 文件;再比如, java 语言的代码文件是`.java`后缀,翻译之后的文件是`.class`后缀。(注意,Java 语言不是严格的 编译型语言,这个一会儿会讲)
|
||||
|
||||
**解释型语言**:
|
||||
|
||||
- 定义:**边翻译边执行**(翻译一行,执行一行),不需要事先一次性翻译。
|
||||
|
||||
- 优点:移植性好,跨平台。
|
||||
|
||||
- 缺点:运行更慢。
|
||||
|
||||
- 解释型语言举例:JavaScript、php、Python。
|
||||
|
||||
**Java语言**:
|
||||
|
||||
Java 语言既不是编译型语言,也不是解释型语言。编译过程:
|
||||
|
||||
(1)`.java`代码文件先通过 javac 命令编译成`.class`文件。
|
||||
|
||||
(2)`.class`文件再通过 jvm 虚拟机,解释执行。有了 jvm 的存在,让 java 跨平台了。
|
||||
|
||||
### 特点2:单线程
|
||||
|
||||
### 特点3:ECMAScript标准
|
||||
@ -218,6 +184,52 @@ JavaScript是由公司开发而成的,问题是不便于其他的公司拓展
|
||||
|
||||
ECMAScript在2015年6月,发布了ECMAScript 6版本(ES6),语言的能力更强(也包含了很多新特性)。但是,浏览器的厂商不会那么快去追上这个标准,需要时间。
|
||||
|
||||
## 编程语言的分类
|
||||
|
||||
### 翻译器
|
||||
|
||||
计算机不能直接理解任何除机器语言以外的语言,所以必须要把程序员所编写的语言翻译成机器语言,计算机才能执行程序。**程序语言翻译成机器语言的工具,被称为翻译器**。
|
||||
|
||||
由此可见,所谓的“翻译”,指的是翻译成计算机能够执行的指令。
|
||||
|
||||
翻译器翻译的方式有两种:一种是**编译**,另一种是**解释**。两种方式之间的区别在于**翻译的时机**不同。
|
||||
|
||||
- **编译器**:在代码执行之前,事前把所有的代码一次性翻译好,生成中间代码文件,然后整体执行。
|
||||
|
||||
- **解释器**:边翻译,边执行(在代码执行时进行及时翻译,并立即执行)。当编译器以解释的方式运行时,也称之为解释器。
|
||||
|
||||
对应的语言,称之为“编译型语言”、“解释型语言”。
|
||||
|
||||
### 编译型语言
|
||||
|
||||
- 定义:事先把所有的代码一次性翻译好,然后整体执行。
|
||||
|
||||
- 优点:运行更快。
|
||||
|
||||
- 不足:移植性不好,不跨平台。
|
||||
|
||||
- 编译型语言举例:c、c++
|
||||
|
||||
比如说,c语言的代码文件是`.c`后缀,翻译之后文件是`.obj`后缀,系统执行的是 obj 文件;再比如, java 语言的代码文件是`.java`后缀,翻译之后的文件是`.class`后缀。(注意,Java 语言不是严格的 编译型语言,这个一会儿会讲)
|
||||
|
||||
### 解释型语言
|
||||
|
||||
- 定义:**边翻译边执行**(翻译一行,执行一行),不需要事先一次性翻译。
|
||||
|
||||
- 优点:移植性好,跨平台。
|
||||
|
||||
- 缺点:运行更慢。
|
||||
|
||||
- 解释型语言举例:JavaScript、php、Python。
|
||||
|
||||
### Java语言
|
||||
|
||||
Java 语言既不是编译型语言,也不是解释型语言。翻译过程:
|
||||
|
||||
(1)编译:`.java`代码文件先通过 javac 命令编译成`.class`文件。
|
||||
|
||||
(2)执行:`.class`文件再通过 jvm 虚拟机,解释执行。有了 jvm 的存在,让 java 跨平台了。
|
||||
|
||||
## 开始写第一行JavaScript代码
|
||||
|
||||
> JavaScript 代码的书写位置在哪里呢?这个问题,也可以理解成:引入 js 代码,有哪几种方式。
|
||||
@ -255,7 +267,6 @@ ECMAScript在2015年6月,发布了ECMAScript 6版本(ES6),语言的能
|
||||
|
||||
- 关于代码中的「引号」,在HTML标签中,我们推荐使用双引号, JS 中我们推荐使用单引号。
|
||||
|
||||
|
||||
### 方式2、内嵌式
|
||||
|
||||
我们可以在html 页面的 `<body>` 标签里放入`<script type=”text/javascript”></script>`标签对儿,并在`<script>`里书写JavaScript 代码:
|
||||
@ -484,4 +495,3 @@ console.log(a);
|
||||
扫一扫,你将发现另一个全新的世界,而这将是一场美丽的意外:
|
||||
|
||||
![](http://img.smyhvae.com/20200101.png)
|
||||
|
||||
|
@ -204,19 +204,38 @@ console.log(a); // 会报错
|
||||
|
||||
**标识符**:在JS中所有的可以由我们**自主命名**的都可以称之为标识符。
|
||||
|
||||
例如:变量名、函数名、属性名都是属于标识符。
|
||||
例如:变量名、函数名、属性名、参数名都是属于标识符。通俗来讲,标识符就是我们写代码时为它们起的名字。
|
||||
|
||||
**标识符的命名规则**和变量的命令规则是一样的。看上面一段就可以了。
|
||||
|
||||
同样,标识符不能使用脚本语言中保留的**关键字**及**保留字**。如下。
|
||||
同样,标识符不能使用语言中保留的**关键字**及**保留字**。如下。
|
||||
|
||||
### 关键字
|
||||
|
||||
![](http://img.smyhvae.com/20180714_1421.png)
|
||||
**关键字**:是指 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、
|
||||
@ -230,12 +249,6 @@ private、protected、public、short、static、super、synchronized、throws、
|
||||
transient、volatile
|
||||
```
|
||||
|
||||
![](http://img.smyhvae.com/20180714_1422.png)
|
||||
|
||||
|
||||
**其他不建议使用的标识符**:
|
||||
|
||||
![](http://img.smyhvae.com/20180714_1423.png)
|
||||
|
||||
|
||||
## 举例
|
||||
|
Loading…
Reference in New Issue
Block a user