整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:

JavaScript 总结

JavaScript 总结

向您讲授了如何向 html 页面添加 JavaScript,使得网站的动态性和交互性更强。

你已经学习了如何创建对事件的响应,验证表单,以及如何根据不同的情况运行不同的脚本。

你也学到了如何创建和使用对象,以及如何使用 JavaScript 的内置对象。


现在已经你已经学习了 JavaScript,接下来该学习什么呢?

下一步应该学习 HTML DOM 和 DHTML。

如果你希望学习关于服务器端脚本的知识,那么下一步应该学习 ASP,PHP, .Net。

HTML DOM

HTML DOM 定义了访问和操作 HTML 文档的标准方法。 HTML DOM 独立于平台和语言,可被任何编程语言使用,比如 Java、JavaScript 和 VBscript。 假如希望了解更多关于 DOM 的知识,请访问我们的 HTML DOM 教程。

jQuery

jQuery 是一个 JavaScript 库。

jQuery 极大地简化了 JavaScript 编程。

jQuery 很容易学习。

假如希望了解更多关于 jQuery 的知识,请访问我们的 jQuery 教程。

AJAX

AJAX=异步 JavaScript 和 XML。

AJAX 不是一种新的编程语言,而是一种使用现有标准的新方法。

通过与服务器进行数据交换,AJAX 可以在不重新加载整个网页的情况下,对网页的某部分进行更新。

有很多使用 AJAX 的应用程序案例:新浪微博、Google 地图、开心网等等。

假如您希望学习更多关于 AJAX 的知识,请访问我们的 AJAX 教程。

ASP / PHP / .NET

和 HTML 文档中的脚本运行于客户端(浏览器)不同,ASP/PHP 文件中的脚本在服务器上运行。

使用 ASP,你可以动态地编辑、改变或者添加网站内容,对由 HTML 表单提交而来的数据进行响应,访问数据或者数据库并向浏览器返回结果,或者定制对不同的用户来说更有帮助的网页。

由于 ASP/PHP 文件返回的是纯粹的 HTML,因此可显示在任何浏览器中。

、什么是 node.js?

① Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境。 Node.js 使用了一个事件驱动、非阻塞式 I/O 的模型。

② Node 是一个让 JavaScript 运行在服务端的开发平台,它让 JavaScript 成为与PHP、Python、Perl、Ruby 等服务端语言平起平坐的脚本语言。

2、安装 node.js

官网链接:

https://nodejs.org/zh-cn/

安装完成在终端里输入 node -v

当出现对应的 node 版本号,即安装成功。

下面执行 js 方法就是一贯通用的用 node 名字.js

3、全局函数

全局函数:简单理解就是放在 js 中任何地方都能执行。像 setTimeout 和 console 就是全局函数。

箭头函数:又叫匿名函数,简化函数的写法。箭头函数的好处:解决了this在function为undefined的问题。


4、回调函数

有个比方说的很形象,有一家旅馆提供叫醒服务,但是要求旅客自己决定叫醒的方法。可以是打客房电话,也可以是派服务员去敲门,睡得死怕耽误事的,还可以要求往自己头上浇盆水。这里,“叫醒”这个行为是旅馆提供的,相当于库函数,但是叫醒的方式是由旅客决定并告诉旅馆的,也就是回调函数。而旅客告诉旅馆怎么叫醒自己的动作,也就是把回调函数传入库函数的动作,称为登记回调函数。

5、导出和导入模块

① 导入单个函数

为了让Node.js的文件可以相互调用,Node.js提供了一个简单的模块系统。

app.js

以上实例中,代码 require('./count_module') 引入了当前目录下的 count_module.js 文件(./ 为当前目录,node.js 默认后缀为 js)。

Node.js 提供了 exports 和 require 两个对象,其中 exports 是模块公开的接口,require 用于从外部获取一个模块的接口,即所获取模块的 exports 对象。

count_module.js

在以上示例中,count_module.js 通过 exports 对象把 counter 作为模块的访问接口,在 app.js 中通过 require('./count_module') 加载这个模块,然后就可以直接访 问 count_module.js 中 exports 对象的成员函数了。

在终端执行 node app.js 输出:

② 导入多个函数

app.js


count_module.js

6、事件

7、文件读写

8、删除文件和创建文件夹

9、web 服务器

app.js

输出:

网页:

10、路由

① 入口文件

app.js

② server_路由.js

11、路由重构代码

app.js

server_重构路由.js

router.js

handler.js

avaScript 是如何运行的?

几乎每个人都听说过 v8引擎这个概念,大多数人都知道 JavaScript 是单线程的,或者它使用的是回调队列。

执行 JavaScript 代码所涉及的核心组件包括运行时环境和浏览器,他们内部如何工作呢?

  • JavaScript Engine
  • JavaScript Runtime Environment
  • The Call Stack
  • Concurrency and Event Loop

JavaScript 是一种解释性编程脚本语言,JavaScript 引擎就是一个执行 JavaScript 代码的计算机程序:解释器,当 JavaScript 文件在浏览器中加载时,负责逐行解析代码,将其转换为机器代码,然后执行它。

每个浏览器都有自己的 JavaScript 引擎,但最著名的是 Google 的 v 8引擎。V8引擎不仅为 Google Chrome 提供动力,还为 Node.js 提供动力,这就是 JavaScript 运行时。

引擎由两个主要组件组成:

  • 内存堆(Memory Heap)ーー这是内存分配发生的地方
  • 调用堆栈(Call Stack)ーー这是代码执行时堆栈帧的位置

Call Stack调用堆栈:计算模型:栈下推自动机,图灵等价。

JS是一种单线程的编程语言,这意味着它只有一个 Call Stack。因此,它可以一次只做一件事。并且不必处理在多线程环境中出现的复杂场景(例如,死锁)。

调用堆栈是一种数据结构,它基本上记录我们在程序中的位置。如果我们进入一个函数,我们把它放在堆栈的顶部。如果我们从一个函数返回,我们将从堆栈顶部弹出。

运行时

JavaScript 引擎并不是孤立运行的。它和许多其他组件一起运行在一个叫做JavaScript Runtime Environment 中。

JRE 负责JavaScript 的异步执行。组件包含:

  • JS Engine, such as V8
  • Web API
  • Callback Queue or message queue
  • Event Table
  • Event loop

并发性和事件循环

虽然是单线程,为了处理多任务,需要并发交替执行,

并发、多线程、多进程、异步编程和事件循环等是一组相关概念,交织在PL和OS的中间。

首先,并发性是一个概念,它能够无序地处理多个任务。任务一般分为计算密集和读写密集。

real world,一个餐厅,一排人点菜后,后厨出菜就是无序的,有的菜工序复杂就得多等,这就是异步,同步就是先来后到一个个上完菜。

实现并发性的技术很多,包括多线程、多进程和异步编程。

异步编程, 比如node.js并发性 使用的异步 i/o,将 i/o 操作移交给操作系统内核,并将 i/o 操作的回调推迟。异步io这个任务就放在事件循环队列进行调度。

由此各组件基本解释一番。