这可能是学习JavaScript最好的18本免费在线电子书

链接:https://www.ossblog.org/master-javascript-programming-with-open-source-books/2/

JavaScript这门语言简单易用,很容易上手,但其语言机制复杂微妙,即使是经验丰富的JavaScript开发人员,如果没有认真学习的话也无法真正理解。

JavaScript具有动态类型,它类型很弱,支持C语言的结构化编程语法,使用原型而不是类继承,并从Java中复制许多名称和命名规则。它还借用了Scheme和Self的设计原则,以及语法风格。

下面我们将推荐18本免费的在线电子书帮助大家更好的学习JavaScript,里面包含初学者、中级和高级程序员所需要的书籍

1、《Eloquent JavaScript》

这本书堪称JavaScript科普书,侧重于编程技术的讲解,而非只是提供复制粘贴的机械学习,书中的例子都能调试,内容丰富详实,如今已被翻译成保加利亚文,葡萄牙文和俄文。

作者Marijn Haverbeke 世界级JavaScript程序员,通晓多种编程语言,在Web开发方面积累了丰富的经验,在JavaScript领域颇有影响力。如今,他专注于动态语言下的数据库系统的研究和Web API的设计。此外,他创建并维护着多个流行的开源项目。

书籍链接:http://eloquentjavascript.net/

2、《You Don’t Know JS》系列(共6本)

这是一个系列,一共包含6本书,这6本书集合了JavaScript的核心机制,广受初学者和中级程序员的好评

Up & Going 教你:

● 基本的编程构建块,包括运算符,类型,变量,条件,循环和函数

● JavaScript的核心机制,如值,函数闭包,这个和原型

● 本系列中其他书籍的概述,并了解为什么理解JavaScript非常重要

this & Object Prototypes:

● 研究JS对象的本质,以及为什么你需要指向它们

● 了解开发人员如何使用mixin模式在JS中伪造类

● 检查JS的原型机制如何在对象之间形成链接

Scope and Closures dives into trickier parts of the language

● 了解Scope,深入理解JavaScript里的域

● 深入嵌套作用域,一系列变量和函数的容器

● 了解如何使用闭包进行同步和异步任务,包括创建JavaScript库

Types & Grammar

● 熟悉JavaScript的七种类型:null,undefined,boolean,number,string,object和symbol

● 了解本机如何提供原始值周围的对象包装

● 探索JavaScript语法中的各种细微差别,涉及语句,表达式和其他功能

Async & Performance

● 探索处理异步编程的JavaScript方法

● 了解回调如何让第三方控制程序的执行

● 使用Web Workers,SIMD和asm.js解决程序级性能问题

ES6 & Beyond

● 学习新的ES6语法

● 学会迭代器,生成器,模块和类组织代码

● 使用集合以结构化方式更有效地处理数据

● 利用新的API助手,包括数组,对象,数学,数字和字符串

书籍链接:https://github.com/getify/You-Dont-Know-JS

3、《Javascript启示录》

《Javascript启示录》力图在有限的篇幅内,通过考察原生javascript对象和所支持的细微差别,来给读者展现准确的Javascript世界观,涉及对象、属性、复杂值、原始值、作用域、继承、this关键字、head对象等重要概念。本书帮助读者厘清这些概念,进而掌握应用它们的技术和技巧。

这本书适合适合希望通过深入了解Javascript对象来巩固对语言理解的高级初学者或中级Javascript开发人员阅读,也适合准备研究Javascript幕后知识的Javascript库使用老手参考。

4、《Building Front-End Web Apps with Plain JavaScript》

本书主要是教大家如何通过JavaScript构建一个简单的Web应用程序。不使用任何(第三方)框架或库,章节主要包括:

● JavaScript入门

● 用七个步骤构建一个简单的JavaScript最小应用程序

● 完整性约束

● 简单JS前端应用程序中的约束验证

● 在普通JS应用程序中实现枚举属性

● 使用mODELcLASSjs进行约束验证

● ......

书籍链接:http://web-engineering.info/JsFrontendApp-Book

5、《Practical ES6》

这本书向你展示了如何构建强调可重用性的小型互连ES6 JavaScript模块。读者将学习如何面对一个模块化思维模式的项目,以及如何构建一个可以单独运行的应用程序,并且能够创建一个强大应用程序的简单部分。

本书重点介绍JavaScript开发的两个方面:模块化和ES6功能。读者将学习如何通过遵循横向扩展方法来解决应用程序开发。随着代码量的增加,你可以将它们分解成更小的模块。

书籍链接:https://ponyfoo.com/books/practical-es6

6、《Learning JavaScript Design Patterns》

《JavaScript设计模式》是JavaScript设计模式的学习指南。全书分为14章。首先介绍了什么是模式、模式的结构、类别、模式的分类、如何编写模式等等;然后,集中介绍了很多流行的设计模式在JavaScript中的应用,包括Module(模块)模式、Observer(观察者)模式、Facade(外观)模式和Mediator(中介者)模式;最后,还探讨了模块化的JavaScript模式、jQuery及其插件中的设计模式。

《JavaScript设计模式》适合专业的Web开发人员和前端工程师阅读。通过阅读本书,他们将能够提高对设计模式的认识,并学会如何将设计模式应用到JavaScript编程语言中。

书籍链接:https://addyosmani.com/resources/essentialjsdesignpatterns/book/

7、《Master Space and Time with JavaScript》(共4本)

这同样是一个系列,里面包含四本书,这四本书分别为:

●基础- 包含Jasmine测试和jQuery的介绍,以及JavaScript的对象模型

●JavaScript中的对象- 在JavaScript中使用和测试对象的更完整示例,包括远程服务器和JSON的通信

● Backbone- 使用Backbone.js继续构建网站,为更复杂的用户交互创建单页面接口

● Ember- 使用Ember.js构建完全不同的网站部分,以创建复杂的客户端交互

书籍链接:http://www.noelrappin.com/mstwjs

8、《DOM Enlightenment》

这本简明的书阐明了文档对象模型(DOM),它是一组用于操作文档和响应用户输入的工具。DOM已经成为web应用程序开发的核心,已经有10多年历史了,通过直接使用DOM,您将了解如何使用最有效的构建可靠的应用程序。JavaScript专家Cody Lindley以一种以代码为中心的方法向你展示了如何对HTML的有效访问。

书籍链接:http://domenlightenment.com/

9、《jQuery Fundamentals》

这本书的目的是对jquery库进行概述;当你通读本书之后,你应该能够利用jquery完成一些基本的开发任务,并且对于进一步学习打下了一个牢固的基础。这本书的设计虽然是按照课堂学习的方式组织的,但是你会发现它对于你的自学也会很有帮助。

这是一门需要动手实践的课程。书中花更少的篇幅在理解概念上,更多的是对这些概念进行编程实践。一些编程实践或许看起来会很琐碎;另一些或许令人发指。无论怎样,在这里并没有等级之分;本书目标很简单:对于需要用jquery来解决的问题,你可以选择适宜你的方式学会并解决它。对于所有的编程实践的例子的解决方案都包含在示例代码中。

书籍链接:http://jqfundamentals.com/legacy/

10、《Developing Backbone.js Applications》

本书详细介绍了如何使用backbone.js完成web应用开发。全书从了解mvc、spa和backbone.js的基本知识开始,然后着手构建3个示例应用程序;此外,backbone和grunt-bbb、jquery mobile等开发工具的配合使用,以及jasmine、qunit和sinonjs等测试解决方案。

书籍链接:https://addyosmani.com/backbone-fundamentals/

●编号684,输入编号直达本文

●输入m获取到文章目录

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180601B0G3SC00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码关注腾讯云开发者

领取腾讯云代金券