而在适用领域方面,JavaScript从最初的纯浏览器端脚本措辞,逐步发展成了如今这样一门可在Web浏览器端、移动设备端、桌面运用端以及做事器端通用的强大编程措辞。

JavaScript的适用领域

如前所述,如果想判断一门编程措辞是否适用于某个领域,很大程度上要去剖析该领域是否能发挥出该措辞的特性上风。
既然我们已经对JavaScript的措辞特性有了一定的理解,那么接下来就可以对这门措辞的适用领域做一些剖析了。
这些剖析将有助于初学者明确JavaScript适宜用来办理什么问题,不适宜用来办理什么问题,以便厘清自己的学习需求和努力方向。
以下是一些适宜用JavaScript来办理问题的领域。

Web浏览器真个运用。
JavaScript在Web浏览器真个上风是最显而易见且无可争议的,毕竟这门措辞最初便是为办理这一领域的问题而设计的。
正是由于JavaScript授予了Web页面在浏览器端强大的用户交互能力,我们才迎来了电子商务、云端办公、社交网络等各种Web运用发达发展的Web 2.0时期。
轻量级的做事器运用。
Node.js运行环境的涌现让JavaScript的适用领域扩展到了Web浏览器之外,尤其是在做事器真个运用。
与ASP、PHP这些传统的做事器端脚本措辞比较,JavaScript支持事宜驱动、异步编程的特性使它在实现轻量级数据密集型的做事器运用方面有一些高性能、高负载的上风。
当然在另一方面,单线程实行和非壅塞I/O的特性也让JavaScript在资源利用率和安全性方面受到了一些限定,使其不适宜被用来实现须要大规模并行打算,或对数据安全有高哀求的运用。
轻量级的桌面运用。
Electron框架的涌现让JavaScript可以被用来实现一些适用于事宜驱动、异步编程、非壅塞型I/O等特性的轻量级桌面运用。
目前盛行的VSCode、Atom等代码编辑器都是基于这一框架的JavaScript运用。
但由于其单线程实行的特性使JavaScript无法充分利用多核处理器的打算资源,因而不适宜用来实现须要大规模并行打算的桌面运用。
富媒体式的运用。
在HTML5涌现之前,市情上用于创作富媒体的运用程序(如Flash)大多数采取的是ActionScript脚本。
由于它也是一种基于ECMAScript标准的脚本措辞,以是也可视它为JavaScript的一种运用。
当然,目前这种形式的运用正在逐渐被人们遗忘,毕竟HTML5为我们供应了更好的选择。

除此之外,JavaScript有时候还会被用来实现一些Web浏览器的扩展与插件、移动真个一些运用,乃至一些用于系统管理的命令行脚本。
总而言之,虽然目前JavaScript已经发展成了一门无处不在的全能型编程措辞,但还是得把稳措辞特性的发挥,能发挥出其特性上风的领域才是它真正适用的领域。
反之,不分场合地强行利用这门措辞只会弄巧成拙、事倍功半。

jsp网络开发入门与实践一本涵盖Web前后端全栈开辟的JavaScript入门教程 JavaScript

选哪一本书做教程?

JavaScript全栈开拓

这是一本专注于JavaScript本身及其运行环境的书,而JavaScript措辞紧张是一门面向Web运用程序开拓领域的编程措辞,纵然是用于开拓桌面运用程序的Electron框架,它在实质上也可以被视为一个针对Google Chromium浏览器(Chrome浏览器的开源版本)的扩展,它的用户界面布局也紧张依赖HTML、CSS及其扩展技能来完成。
以是在阅读本书之前,希望读者已经节制了与HTML和CSS干系的根本知识。

由于本书只专注于谈论如何利用JavaScript措辞与其运行环境供应的接口,因此不打算过多地涉及时下五花八门的开拓框架。
这样做紧张是基于两个方面的考虑。
第一,先容JavaScript措辞及其运行环境本身就足以撑起一本构造完全、内容丰富的书了。
如果再加上浩瀚开拓框架的先容,就会淡化这本书的主题,并使其臃肿不堪。
第二,JavaScript社区的开拓框架不仅五花八门,选择浩瀚,而且更新换代极为迅速。
这意味着,纵然这本书先容了客户真个React框架、做事真个Express框架、桌面真个Electron框架,也很有可能到这本书写完并终极出版之时,开拓者已经有了更好的选择。
正所谓“授之以鱼不如授之以渔”,读者真正该当节制的是快速学习新框架的能力,这就须要读者理解这些框架的设计思路,理解为什么决定开放那些接口给用户,以及为什么要对用户隐蔽那些实现,从而习得开拓框架的能力。
换句话说,虽然不必重复发明轮子,但一个精良的工程师或设计师该当理解轮子是如何被发明的,这样才能清楚用什么样的轮子构建什么样的车。

其余,要想学好一门措辞,无论是英语、汉语这样的自然措辞还是C/C++、Java、JavaScript这样的编程措辞,最好的办法便是尽可能地在实践中利用它,在实际需求的驱动下模拟、试错并总结履历。
以是本书不鼓励读者利用可直接复制和粘贴的代码示例,我更希望读者“自己动手”去模拟本书供应的示例,亲手将自己想要实行的代码输入打算机中,并不雅观察它们是如何事情的,然后试着修正它们,并验证其结果是否符合预期。
如果符合预期;就总结当下的履历;如果不符合预期,则去思考该当做哪些调度使其符合预期。
如此周而复始,才能让学习事半功倍。

《JavaScript全栈开拓》简介

简而言之,本书是一本涵盖Web前后端全栈开拓的JavaScript入门教程,从基于ECMAScript标准的基本语法开始,循规蹈矩、层层深入地先容JavaScript在浏览器端、做事器真个开拓思路、设计理念。
在此过程中,本书供应大量可读性强、能够精确运行的代码示例,以帮助读者理解书中先容的技能、观点、编程思想与程序设计理念。

除了序言部分,本书的主体由三部分组成。
第一部分谈论的是JavaScript措辞的核心,这里用4章的篇幅先容JavaScript措辞由ECMAScript标准所规范的基本语法、面向工具机制、异步编程方法等直接与措辞本身干系的内容。
第二部分谈论的是前端开拓,这里用5章的篇幅来先容JavaScript在浏览器真个利用,包括DOM和BOM组件、AJAX技能等。
第三部分谈论的是后端开拓,这里用4章的篇幅来先容JavaScript在Node.js平台中的利用,包括如何创建Web做事器并相应浏览器的要求,如何读取做事器上的文件或在做事器上实行数据库操作等。
下面是本书各章的内容简介。

第1章,JavaScript简介。
这一章会让读者对JavaScript这门编程措辞有一个整体的认知。
首先详细先容JavaScript的起源以及它的标准化过程,帮助读者理解它的组成和特性,以及能发挥其特性上风的领域。
然后先容如何搭建可用于实行/调试JavaScript脚本的运行环境。

第2章,变量、表达式与语句。
这一章先容注释、变量、表达式以及语句等JavaScript的基本语法元素及其用法。
首先对如何在JavaScript代码中进行注释做一些干系的先容和建议。
然后先容变量的定义、命名规范、数据类型、存储类型等根本知识,以及用于操作变量的操作符。
末了讲解如何编写程序的最基本实行单位——语句,个中包括用于选择实行的条件语句和用于重复实行的循环语句。

第3章,函数与工具。
这一章先容封装的观点及其在编程中的意义。
首先先容如何将归属于不同任务的操作分离出来,封装成独立的函数并调用它。
然后先容如何将函数与其干系的数据进一步封装成工具。
末了由工具的定义进一步引出数据构造的观点,帮助读者理解数据构造在编程中的浸染。
除此之外,本着“不要重复发明轮子”的基本编程原则,本章还将详细先容一系列JavaScript中常用的内置函数和工具。

第4章,面向工具编程。
这一章先容如何在JavaScript中实现面向工具编程。
首先从程序设计的需求面切入,阐明什么是面向工具编程,以及将调用接口与详细实现分开设计的意义。
然后详细先容如何在构建工具的过程中将实现细节隐蔽起来,并开放公有接口。
接着进入面向工具编程的核心内容:类与类之间的继续关系。
在针对该内容的谈论中,先详细先容ES6新增的类定义与类继续语法,随即将韶光拉回到ES6标准发布之前,为读者解释在没有类定义与继续语法的情形下,如何在JavaScript中实现面向工具编程。
末了再回过分来证明ES6新增的语法并没有改变这一继续机制,它只是一个在利用上供应方便的“语法糖”。

第5章,异步编程。
这一章先容异步编程的观点及其用法与实行机制,其紧张内容包括事宜处理与Promise工具。
本章会详细解释异步编程在JavaScript编程中的分外地位,它是利用该措辞编程最核心的技能之一。
换句话说,只有节制了异步编程,JavaScript在我们手中才能展现出其真正强大的能力。

第6章,前端编程概述。
这一章先容做事器和浏览器在Web运用程序架构中的分工,以便帮助读者明确前端编程的任务。
作为本书第二部分的开篇,本章会先容前端编程中详细要利用的工具,个中包含用于处理HTML和XML文档页面元素的DOM、用于处理浏览器部分功能的BOM、用于支持AJAX编程的XMLHTTP系列工具,以及用于装饰Web页面的CSS等美工技能。

第7章,DOM标准与利用。
这一章先容如何在前端处理XML与HTML文档的DOM工具。
首先先容DOM涌现的历史背景以及标准化过程。
然后详细先容DOM的利用办法及其背后的编程思维。
简而言之,DOM的实质是将浏览器所读取到的XML或HTML文档映射到内存中的一个树形的数据构造中,以便开拓者通过对该树构造的节点进行增、删、改、查等操作的办法来实现Web运用程序用户界面的动态化。

第8章,DOM扩展与BOM。
这一章先容一系列具有专门用场的DOM扩展接口。
通过利用这些接口,我们可以大幅度地降落开拓、掩护程序的本钱,并提高程序的运行效率。
本章还会先容可用于在JavaScript脚本中实行浏览器干系操作的BOM接口。
通过这些接口,我们可以在JavaScript脚本中完成页面的定位与导航、识别用户利用的浏览器、判断用户设备屏幕的大小、弹出系统对话框等任务。

第9章,前端事宜处理。
这一章详细先容可用于响运用户界面操作的前端事宜处理机制。
首先对事宜处理中所涉及的一些观点进行梳理,帮助读者理解何谓事宜、如何触发事宜、事宜流是什么、如何相应事宜等根本知识。
然后从用户界面事宜、鼠标操作事宜、键盘操作事宜以及焦点得失落事宜等几大类事宜来先容在Web运用程序的前端究竟可以处理哪些事宜。
除此之外,本章还会先容事宜在DOM事宜流中的传播路径,它又分为事宜捕获、处于目标与事宜冒泡三个阶段,选择在哪一个阶段相应事宜将在很大程度上决定事宜处理函数的设计。

第10章,AJAX编程方法。
这一章详细先容AJAX编程方法。
AJAX是一种让浏览器与做事器单独进行异步数据通信的方法,目的是让浏览器在不刷新当前页面的情形下与做事器进行数据交流,并根据交流的结果局部更新页面中的内容。
首先先容XMLHttpRequest工具供应的常用接口,以及用该工具进行异步数据通信的基本操作。
然后先容如何将XMLHttpRequest工具实行异步数据通信的基本操作后封装成常用的AJAX工具函数。
除此之外,还会演示如何利用这些封装好的AJAX工具函数要求做事器真个数据。
在此过程中,还会详细先容JSON和XML这两种常用于网络传输的数据格式,演示如何在JavaScript代码中解析和序列化它们,并将要求到的数据在不刷新页面的情形下显示在页面中。

第11章,Node.js概述。
这一章作为第三部分的开篇,会对Node.js这个可在浏览器之外运行JavaScript代码的运行环境进行概要性的先容,为读者打好根本。

第12章,构建Web做事。
这一章谈论如何在Node.js平台中构建Web做事。
这是Node.js与PHP、JSP等Web运用开拓办法的重大差异之一。
利用PHP、JSP等运用开拓办法常日须要借助Apache、Nginx、IIS这类做事器软件来构建Web做事,这无疑增加了Web全栈开拓职员的学习本钱和支配本钱。
当然,利用Node.js来构建Web做事也增加了编程的事情量。
以是两种Web开拓办法各有利弊,读者需根据自己的须要来取舍。

第13章,相应客户要求。
这一章谈论如何编写基于Node.js的Web运用程序后真个核心任务:相应客户端要求。
相应客户端要求的第一步是要对客户端发来的要求信息进行全面而细致的剖析,这常日须要借助http.IncomingMessage类的实例来完成。
本章首先会详细先容该类工具常用的属性和方法,以及可以注册的事宜处理函数。
相应客户端要求的第二步是根据剖析的结果构建要返回给客户真个相应数据。
相应数据紧张可分为静态数据与动态数据两大类,可以根据客户端要求的URL来区分它们。
其余,在构建相应数据的过程中,常日须要借助fs模块中的方法将做事真个本地文件读取到程序中。
若是静态资源就直接将读取出来的数据发送给客户端;若是动态资源,读取出来的数据必须进行一些处理才能发送给客户端,此时须要借助模板引擎构建相应数据。
因此,本章也会对fs模块中的常用方法和模板引擎进行先容。
相应客户端要求的末了一步是将相应数据发送给客户端,这常日要借助http.ServerResponse类的实例来完成。
本章会对该类工具常用的属性和方法,以及可以处理的事宜进行详细先容。

第14章,实现数据存取。
这一章详细先容如何在Web运用程序开拓中办理数据持久化存取的问题。
对付客户端,首先让人想到的是最传统的办理方案:Cookie。
该方案虽然具有可自由配置数据有效韶光、数据构造大略易用等优点,但也有大小非常有限、须要不断地在客户端与做事端来回传送、安全性不佳等缺陷。
为理解决Cookie方案存在的问题,HTML5供应了新的办理方案,即利用localStorage与sessionStorage这两个工具在客户端持久化存取不须要在客户端与做事端之间来回传送的数据。
而对付做事端,数据存取操作常日须要借助数据库这种专用系统供应的办理方案来完成。
本章会对这些办理方案进行逐一先容。