06
2022.05

四、使用树加快查找和修改

发布 查看回复
四、使用树加快查找和修改 树是最先进、最复杂的数据结构之一。它为图论打开了大门,图论被用来表示对象之间的关系。对象可以是任何类型,只要它们有一个确定的关系,就可以用树的形式来表示。 虽然有几十棵树,但不可能在一章中涵盖所有树,因此我们将采取不同的方法,并在浏览示例时以更实用的方式了解树,而不是像前几章那样提前了解树。 在本章中,我们将探讨以下主题: 创建基本角度应用, 使用 trie 树创建提前
详细
06
2022.05

三、使用集合和映射实现更快的应用

发布 查看回复
三、使用集合和映射实现更快的应用 set和map是两个出了名的外观简单的数据结构,在最新版本的 ES6 中已经标准化了。 在本章中,我们将涵盖以下主题: 为什么我们需要布景和地图? 何时以及如何使用集合和地图 ES6 应用编程接口集和地图 用例 性能比较 探索集合和地图的起源 在我们尝试并理解如何在现实应用中使用集合和地图之前,首先了解集合和地图的起源以及我们为什么需要它们在 JavaScri
详细
06
2022.05

二、为有序执行创建队列

发布 查看回复
二、为有序执行创建队列 队列是一种编程构造,与现实世界的队列非常相似,例如电影院、自动取款机或银行的队列。与栈相反,队列是先进先出 ( 先进先出),所以先入先出也是如此。当您希望按照数据流入的相同顺序维护数据时,这尤其有用。 队列的计算机/科学定义如下: 一种抽象的数据集合,其中元素可以被添加到后面称为入队,从前面移除称为出列,这使得它成为一种先进先出的数据结构。 当然,仅仅让入队和出队操作对于大
详细
06
2022.05

一、为应用状态管理构建栈

发布 查看回复
一、为应用状态管理构建栈 栈是人们能想到的最常见的数据结构之一。它们在个人和专业机构中无处不在。栈是一种后进先出 ( 后进先出)的数据结构,它提供了一些常见的操作,如推送、弹出、查看、清除和大小。 在大多数面向对象编程语言中,你会发现栈数据结构是内置的。另一方面,JavaScript 最初是为 web 设计的;它还没有一堆烤好的。然而,不要让这阻止你。使用 JS 创建栈相当容易,使用最新版本的 J
详细
06
2022.05

零、前言

发布 查看回复
零、前言 这本书的主要重点是在使用 JavaScript 的真实网络应用中使用数据结构和算法。 随着 JavaScript 进入服务器端,随着单页应用 (SPA)框架接管客户端,很多(如果不是全部的话)业务逻辑被移植到客户端。这使得采用为给定用例定制的手工数据结构和算法变得至关重要。 例如,在处理数据可视化(如图表、图和 3D 或 4D 模型)时,服务器可能会提供数万甚至数十万个复杂对象,有时是近
详细
06
2022.05

九、附录 b:术语表

发布 查看回复
九、附录 b:术语表 本附录涵盖了本书中使用的一些重要术语: 匿名函数:一个没有名字,不绑定任何变量的函数。它也被称为λ表达式。 回调:一个函数,可以传递给另一个函数在以后的事件中使用。 范畴:用范畴论的来说,一个范畴是同类事物的集合。在 JavaScript 中,类别可以是包含对象的数组或对象,这些对象都被显式声明为数字、字符串、布尔值、日期、对象等。 范畴理论:一个概念将数学结构组织成对象的
详细
06
2022.05
八、附录 a:JavaScript 函数式编程的常用函数 本附录涵盖了 JavaScript 中函数编程的常见功能: 数组函数: ```js var flatten = function(arrays) { return arrays.reduce( function(p,n){ return p.concat(n); }); }; var invert = function(
详细
06
2022.05
七、JavaScript 中的函数式和面向对象编程 你会经常听到 JavaScript 是一种空白语言,其中空白要么是面向对象的,要么是函数式的,要么是通用的。这本书把重点放在了作为函数式语言的 JavaScript 上,并竭尽全力证明了这一点。但事实是,JavaScript 是一种通用语言,这意味着它完全能够支持多种编程风格。像 Python 和 F#一样,JavaScript 是多范式的。但与
详细
06
2022.05

六、JavaScript 中的高级主题和陷阱

发布 查看回复
六、JavaScript 中的高级主题和陷阱 JavaScript 曾被称为“网络的汇编语言”。类比(不是很完美,但是哪个类比是?)来源于 JavaScipt 经常是编译的目标,即来自 Clojure 和 CoffeeScript ,但也来自许多其他来源,如睡衣 (python 到 JS)和谷歌 Web Kit (Java 到 JS)。 但这个类比也提到了一个愚蠢的想法,即 JavaScript
详细
06
2022.05

五、范畴论

发布 查看回复
五、范畴论 托马斯·沃森曾说过一句著名的话:“我认为世界上可能有五台电脑的市场”。那是在 1948 年。那时,每个人都知道计算机只会用于两件事:数学和工程。即使是科技界最有头脑的人也无法预测,有一天,计算机将能够把西班牙语翻译成英语,或者模拟整个天气系统。当时,最快的机器是 IBM 的 SSEC,以每秒 50 次乘法计时,显示终端直到 15 年后才到期,多处理意味着多个用户终端共享一个处理器。晶体
详细
06
2022.05

四、使用 JavaScript 实现函数式编程技术

发布 查看回复
四、使用 JavaScript 实现函数式编程技术 抓住你的帽子,因为我们现在真的要进入功能思维模式了。 在本章中,我们将执行以下操作: 将所有核心概念放在一起,形成一个有凝聚力的范例 探索当我们完全致力于风格时,函数式编程所能提供的美 当功能模式建立在彼此之上时,逐步完成它们的逻辑发展 与此同时,我们将构建一个简单的应用,做一些非常酷的事情 您可能已经注意到了上一章在处理 JavaScrip
详细
06
2022.05

二、函数式编程基础

发布 查看回复
二、函数式编程基础 到目前为止,您已经看到了函数式编程可以做些什么。但是函数式编程到底是什么呢?是什么让一种语言起作用而另一种语言不起作用?是什么让一种编程风格起作用而不是另一种? 在本章中,我们将首先回答这些问题,然后介绍函数式编程的核心概念: 将函数和数组用于控制流 编写纯函数、匿名函数、递归函数等等 像传递对象一样传递函数 利用map()、filter()和reduce()功能 函数式编
详细
06
2022.05

一、JavaScript 函数的力量——一个演示

发布 查看回复
一、JavaScript 函数的力量——一个演示 简介 几十年来,函数式编程一直是计算机科学爱好者的宠儿,因其数学上的纯洁性和令人费解的性质而备受推崇,这使得它被隐藏在布满灰尘的计算机实验室中,这些实验室被数据科学家和希望获得博士学位的人占据。但是现在,由于现代语言,比如*JuliaRubyclo jure*和——最后但不是最少——JavaScript。 **你说是 JavaScript?网络的脚
详细
06
2022.05

零、前言

发布 查看回复
零、前言 函数式编程是一种强调并支持编写更智能的代码的风格,它最大限度地降低了复杂性并增加了模块化。这是一种通过巧妙的变异、组合和使用函数来编写更简洁代码的方法。JavaScript 为这种方法提供了一个极好的媒介。互联网的脚本语言 JavaScript 实际上本质上是一种函数式语言。通过学习如何公开它作为一种功能性语言的真实身份,我们可以实现功能强大、更容易维护和更可靠的 web 应用。通过这样
详细
06
2022.05

二十一、项目:技能分享网站

发布 查看回复
二十一、项目:技能分享网站 原文:Project: Skill-Sharing Website 译者:飞龙 协议:CC BY-NC-SA 4.0 自豪地采用谷歌翻译 部分参考了《JavaScript 编程精解(第 2 版)》 If you have knowledge, let others light their candles at it. Margaret Fuller 技能分享会是一
详细
06
2022.05

二十、Node.js

发布 查看回复
二十、Node.js 原文:Node.js 译者:飞龙 协议:CC BY-NC-SA 4.0 自豪地采用谷歌翻译 部分参考了《JavaScript 编程精解(第 2 版)》 A student asked 'The programmers of old used only simple machines and no programming languages, yet they made be
详细
06
2022.05

十八、HTTP 和表单

发布 查看回复
十八、HTTP 和表单 原文:HTTP and Forms 译者:飞龙 协议:CC BY-NC-SA 4.0 自豪地采用谷歌翻译 部分参考了《JavaScript 编程精解(第 2 版)》 通信在实质上必须是无状态的,从客户端到服务器的每个请求都必须包含理解请求所需的所有信息,并且不能利用服务器上存储的任何上下文。 Roy Fielding,《Architectural Styles and t
详细
06
2022.05

十七、在画布上绘图

发布 查看回复
十七、在画布上绘图 原文:Drawing on Canvas 译者:飞龙 协议:CC BY-NC-SA 4.0 自豪地采用谷歌翻译 部分参考了《JavaScript 编程精解(第 2 版)》 绘图就是欺骗。 M.C. Escher,由 Bruno Ernst 在《The Magic Mirror of M.C. Escher》中引用 浏览器为我们提供了多种绘图方式。最简单的方式是用样式来规定
详细
06
2022.05

十六、项目:平台游戏

发布 查看回复
十六、项目:平台游戏 原文:Project: A Platform Game 译者:飞龙 协议:CC BY-NC-SA 4.0 自豪地采用谷歌翻译 部分参考了《JavaScript 编程精解(第 2 版)》 所有现实都是游戏。 Iain Banks,《The Player of Games》 我最初对电脑的痴迷,就像许多小孩一样,与电脑游戏有关。我沉迷在那个计算机所模拟出的小小世界中,我可以
详细
06
2022.05

十五、处理事件

发布 查看回复
十五、处理事件 原文:Handling Events 译者:飞龙 协议:CC BY-NC-SA 4.0 自豪地采用谷歌翻译 部分参考了《JavaScript 编程精解(第 2 版)》 你对你的大脑拥有控制权,而不是外部事件。认识到这一点,你就找到了力量。 马可·奥勒留,《沉思录》 有些程序处理用户的直接输入,比如鼠标和键盘动作。这种输入方式不是组织整齐的数据结构 - 它是一次一个地,实时地出
详细