diff --git a/04-JavaScript基础/01-JS简介.md b/04-JavaScript基础/01-JS简介.md index 3b69085..34a5a4f 100644 --- a/04-JavaScript基础/01-JS简介.md +++ b/04-JavaScript基础/01-JS简介.md @@ -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 页面的 `` 标签里放入``标签对儿,并在`