JS之基础知识

一、JavaScript介绍

1、JavaScript是前端语言

JavaScript是前端语言,而不是后台语言。

JavaScript运行在用户的终端网页上,而不是服务器上,所以我们称之为“**前端语言**”。就是服务于页面的交互效果、美化,不能操作数据库。

**后台语言**是运行在服务器上的,比如PHP、ASP、JSP等等,这些语言都能够操作数据库,都能够对数据库进行“增删改查”操作。

备注:Node.js是用 JavaScript 开发的,现在也可以基于 Node.js 技术进行服务器端编程。

2、JavaScript的组成

JavaScript基础分为三个部分:

- **ECMAScript**:JavaScript 的**语法标准**。包括变量、表达式、运算符、函数、if语句、for语句等。

- **DOM**:Document Object Model(文档对象模型),操作**页面上的元素**的API。比如让盒子移动、变色、改变大小、轮播图等等。

- **BOM**:Browser Object Model(浏览器对象模型),操作**浏览器部分功能**的API。通过BOM可以操作浏览器窗口,比如弹框、控制浏览器跳转、获取浏览器分辨率等等。

3、JavaScript 的特点

特点1:解释型语言

JavaScript 是解释型语言,不需要事先被翻译为机器码;而是边翻译边执行(翻译一行,执行一行)。

什么是「解释型语言」?详见下一段。

> 由于少了实现编译这一步骤,所以解释型语言开发起来尤为方便,但是解释型语言运行较慢也是它的劣势。不过解释型语言中使用了JIT技术,使得运行速度得以改善。

 特点2:单线程

特点3:ECMAScript标准

ECMAScript是一种由 ECMA 国际(前身为欧洲计算机制造商协会,英文名称是European Computer Manufacturers Association)制定和发布的脚本语言规范。

JavaScript是由公司开发而成的,问题是不便于其他的公司拓展和使用。所以欧洲的这个ECMA的组织,牵头制定JavaScript的标准,取名为ECMAScript。

简单来说,**ECMAScript不是一门语言,而是一个标准**。ECMAScript 规定了JS的编程语法和基础核心知识,是所有浏览器厂商共同遵守的一套JS语法工业标准。

ECMAScript在2015年6月,发布了ECMAScript 6版本(ES6),语言的能力更强(也包含了很多新特性)。但是,浏览器的厂商不会那么快去追上这个标准,需要时间。

通俗理解就是:ECMAScript 是 JS 的语法;DOM 和 BOM 浏览器运行环境为 JS提供的API。

JS的版本

由ECMA的第39号技术专家委员会(Technical Committee 39,简称TC39)负责制订ECMAScript标准,成员包括Microsoft、Mozilla、Google等公司。

ECMAScript 就是JS的语言标准。

JS的版本发布记录:

- 1997年,ECMA 发布 ECMA-262 标准,推出浏览器标准语言 ECMAScript 1.0。

- 2009年,发布 ECMAScript 5.0。

- 2011年,发布 ECMAScript5.1,成为ISO国际标准,从而推动所有浏览器都支持。

- 2015年,发布 ECMAScript 6(简称 ES6),更名为ECMAScript 2015。

注意,**前者是按版本号区分,后者是按年份区分**。

- 2016年,发布 ECMAScript 7,即 ECMAScript 2016。

- 2017年,发布ECMAScript 8,即 ECMAScript 2017。

- 2018年,发布 ECMAScript 9,即 ECMAScript 2018。

- 2019年,发布 ECMAScript 10,即 ECMAScript 2019。

- 2020年,发布 ECMAScript 11,即 ECMAScript 2020。

 

二、编程语言的分类

1、翻译器

计算机不能直接理解任何除机器语言以外的语言,所以必须要把程序员所编写的语言翻译成机器语言,计算机才能执行程序。**程序语言翻译成机器语言的工具,被称为翻译器**。

由此可见,所谓的“翻译”,指的是翻译成计算机能够执行的指令。

翻译器翻译的方式有两种:一种是**编译**,另一种是**解释**。两种方式之间的区别在于**翻译的时机**不同。

- **编译器**:在代码执行之前,事前把所有的代码一次性翻译好,生成中间代码文件,然后整体执行。

- **解释器**:边翻译,边执行(在代码执行时进行及时翻译,并立即执行)。当编译器以解释的方式运行时,也称之为解释器。

对应的语言,称之为“编译型语言”、“解释型语言”。

2、编译型语言

- 定义:事先把所有的代码一次性翻译好,然后整体执行。

- 优点:运行更快。

- 不足:移植性不好,不跨平台。

- 编译型语言举例:c、c++

比如说,c语言的代码文件是`.c`后缀,翻译之后文件是`.obj`后缀,系统执行的是 obj 文件;再比如, java 语言的代码文件是`.java`后缀,翻译之后的文件是`.class`后缀。(注意,Java 语言不是严格的 编译型语言,这个一会儿会讲)

3、解释型语言

- 定义:**边翻译边执行**(翻译一行,执行一行),不需要事先一次性翻译。

- 优点:移植性好,跨平台。

- 缺点:运行更慢。

- 解释型语言举例:JavaScript、php、Python。

注:

Java语言

Java 语言既不是编译型语言,也不是解释型语言。翻译过程:

(1)编译:`.java`代码文件先通过 javac 命令编译成`.class`文件。

(2)执行:`.class`文件再通过 jvm 虚拟机,解释执行。有了 jvm 的存在,让 java 跨平台了。

 

三、JavaScript引入

1、行内式

<input type="button" value="点我点我" onclick="alert(‘千古壹号‘)" />

可以将单行或少量 JS 代码写在HTML标签的事件属性中(以 on 开头的属性),比如放在上面的 `onclick`点击事件中。

- 这种书写方式,不推荐使用,原因是:可读性差,尤其是需要编写大量 JS代码时,容易出错;引号多层嵌套时,也容易出错。

- 关于代码中的「引号」,在HTML标签中,我们推荐使用双引号, JS 中我们推荐使用单引号。

 

2、内嵌式

在 `<body>` 标签里放入`<script type=”text/javascript”></script>`标签,并在`<script>`里书写JavaScript 代码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
    <script type="text/javascript">
        // 在这里写 js 代码
        alert(千古壹号的方式2);
        console.log(qianguyihao 方式2);
    </script>
</body>
</html>

- text表示纯文本,因为JavaScript也是一个纯文本的语言。

- 可以将多行JS代码写到 `<script>` 标签中。

- 内嵌式 JS 是学习时常用的方式。

 

3、引入外部的 JS 文件

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
    <!-- 引入外部的 js 文件 -->
    <script src="tool.js"></script>
</body>
</html>

上面这段代码,依然是放到body标签里,可以和内嵌的js代码并列。

注:引用外部 JS文件的 script 标签中间不可以再写代码。

 

四、JavaScript语法

1、JavaScript对换行、缩进、空格不敏感。每一条语句以分号结尾。

注:每一条语句末尾要加上分号,虽然分号不是必须加的,如果不写分号,浏览器会自动添加,但是会消耗一些系统资源。

2、所有的符号,都是英语的。比如括号、引号、分号。

如果你用的是搜狗拼音,**建议不要用shift切换中英文**(可以在搜狗软件里进行设置),不然很容易输入中文的分号;建议用ctrl+space切换中英文输入法。

3、严格区分大小写。

我们不要把 HTML、CSS、JavaScript三者的注释格式搞混淆了。

HTML 的注释

<!-- 我是注释 -->

CSS的注释

/*  */

JavaScript的注释

// 单行注释

/*
多行注释1
多行注释2
*/

 

五、常用语句

1、alert语句

alert(英文翻译为“警报”)的用途:弹出“警告框”。

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8" />
        <meta name="viewport" content="width=device-width, initial-scale=1.0" />
        <title>Document</title>
    </head>
    <body>
        <script>
            alert(千古壹号);
        </script>
    </body>
</html>

代码中,如果写了两个alert()语句的话,网页的效果是:弹出第一个警告框,点击确定后,继续弹出第二个警告框

2、console.log("")

console.log("")`表示在控制台中输出。console表示“控制台”,log表示“输出”。

在Chrome浏览器中,按F12即可打开控制台,选择「console」栏,即可看到打印的内容。

控制台是工程师、程序员调试程序的地方。程序员经常使用这条语句输出一些东西,来测试程序是否正确。

普通人是不会在意控制台的,但是有些网站另藏玄机。如百度首页的控制台,悄悄地放了一段招聘信息

总结:alert() 主要用来显示消息给用户,console.log() 用来给程序员自己调试用的。

3、prompt()

prompt()就是专门用来弹出能够让用户输入的对话框。用得少,测试的时候偶尔会用。

var a = prompt("请随便输入点什么东西吧");
console.log(a);

prompt()语句中,用户不管输入什么内容,都是字符串。

**alert()和prompt()的区别:**

- alert() 可以直接使用。

- prompt() 会返回用户输入的内容。我们可以用一个变量,来接收用户输入的内容。

 

JS之基础知识

上一篇:Apache Zeppelin UI


下一篇:【holm】ASP.NET期末复习指南