最新 | 最热门 | 最高评价

+0  Web Worker 使用教程

Tag: JavaScript
阮一峰 发于 2018年07月08日 20:59 | 点击: 345 | 展开摘要
一、概述

JavaScript 语言采用的是单线程模型,也就是说,所有任务只能在一个线程上完成,一次只能做一件事。前面的任务没做完,后面的任务只能等着。随着电脑计算能力的增强,尤其是多核 CPU 的出现,单线程带来很大的不便,无法充分发挥计算机的计算能力。

Web Worker 的作用,就是为 JavaScript 创造多线程环境,允许主线程创建 Worker 线程,将一些任务分配给后者运行。在主线程运行的同时,Worker 线程在后台运行,两者互不干扰。等到 Worke

查看全文: http://www.udpwork.com/item/16940.html

+0  浏览器数据库 IndexedDB 入门教程

Tag: JavaScript
阮一峰 发于 2018年07月04日 08:55 | 点击: 427 | 展开摘要
一、概述

随着浏览器的功能不断增强,越来越多的网站开始考虑,将大量数据储存在客户端,这样可以减少从服务器获取数据,直接从本地获取数据。

现有的浏览器数据储存方案,都不适合储存大量数据:Cookie 的大小不超过4KB,且每次请求都会发送回服务器;LocalStorage 在 2.5MB 到 10MB 之间(各家浏览器不同),而且不提供搜索功能,不能建立自定义的索引。所以,需要一种新的解决方案,这就是 IndexedDB 诞生的背景。

通俗地说,IndexedDB 就是浏

查看全文: http://www.udpwork.com/item/16936.html

+0  JavaScript 的 this 原理

Tag: JavaScript
阮一峰 发于 2018年06月18日 15:43 | 点击: 386 | 展开摘要
一、问题的由来

学懂 JavaScript 语言,一个标志就是理解下面两种写法,可能有不一样的结果。

var obj = {
foo: function () {}
};

var foo = obj.foo;

// 写法一
obj.foo()

// 写法二
foo()

上面代码中,虽然obj.foo和foo指向同一个函数,但是执行结果可能不一样。请看下面的例子。

var obj = {
foo: function () { console.log(thi

查看全文: http://www.udpwork.com/item/16908.html

+0  Migrate from MediaWiki to GitBook

Tag: javascript | wiki
Volcano 发于 2018年06月06日 15:18 | 点击: 394 | 展开摘要
Export data from MediaWiki

Using ‘Special:Export’ to export all pages at MediaWiki

Go to Special:Allpages and choose the desired article/file.

Copy the list of page names to a text editor

Put all page names on separate lines

查看全文: http://www.udpwork.com/item/16884.html

+0  Node 调试工具入门教程

Tag: JavaScript
阮一峰 发于 2018年03月20日 08:11 | 点击: 520 | 展开摘要
JavaScript 程序越来越复杂,调试工具的重要性日益凸显。客户端脚本有浏览器,Node 脚本怎么调试呢?

2016年,Node 决定将 Chrome 浏览器的"开发者工具"作为官方的调试工具,使得 Node 脚本也可以使用图形界面调试,这大大方便了开发者。

本文介绍如何使用 Node 脚本的调试工具。

一、示例程序

为了方便讲解,下面是一个示例脚本。首先,新建一个工作目录,并进入该目录。

$ mkdir debug-demo
$ cd debug-demo

查看全文: http://www.udpwork.com/item/16735.html

+0  Node 定时器详解

Tag: JavaScript
阮一峰 发于 2018年02月23日 08:43 | 点击: 580 | 展开摘要
JavaScript 是单线程运行,异步操作特别重要。

只要用到引擎之外的功能,就需要跟外部交互,从而形成异步操作。由于异步操作实在太多,JavaScript 不得不提供很多异步语法。这就好比,有些人老是受打击, 他的抗打击能力必须变得很强,否则他就完蛋了。

Node 的异步语法比浏览器更复杂,因为它可以跟内核对话,不得不搞了一个专门的库 libuv 做这件事。这个库负责各种回调函数的执行时间,毕竟异步任务最后还是要回到主线程,一个个排队执行。

为了协调异步任务,Nod

查看全文: http://www.udpwork.com/item/16667.html

+0  《ES6 标准入门(第3版)》上市了!

Tag: JavaScript
阮一峰 发于 2017年09月19日 07:06 | 点击: 848 | 展开摘要
2017年6月,TC39 委员会正式发布了《ES2017 标准》。

相比两年前,JavaScript 语法有了很大的升级,主要是引入了 async 函数和 decorator。这让我觉得,《ES6 标准入门》必须要出新版,否则就跟不上形势了。

电子工业出版社的张春雨编辑很支持我的想法,最快时间投入出版社的资源;孙奇俏编辑连续几周都忙于校对排版。7月初我交稿,8月底送印刷厂,9月中旬《ES6 标准入门(第3版)》就全面上市了。

淘宝

京东

亚马逊

当当

China

查看全文: http://www.udpwork.com/item/16421.html

+0  asm.js 和 Emscripten 入门教程

Tag: JavaScript
阮一峰 发于 2017年09月07日 07:44 | 点击: 1120 | 展开摘要
Web 技术突飞猛进,但是有一个领域一直无法突破 ---- 游戏。

游戏的性能要求非常高,一些大型游戏连 PC 跑起来都很吃力,更不要提在浏览器的沙盒模型里跑了!但是,尽管很困难,许多开发者始终没放弃,希望让浏览器运行 3D 游戏。

2012年,Mozilla 的工程师 Alon Zakai 在研究 LLVM 编译器时突发奇想:许多 3D 游戏都是用 C / C++ 语言写的,如果能将 C / C++ 语言编译成 JavaScript 代码,它们不就能在浏览器里运行了吗?

查看全文: http://www.udpwork.com/item/16409.html

+0  Koa 框架教程

Tag: JavaScript
阮一峰 发于 2017年08月09日 07:29 | 点击: 1131 | 展开摘要
Node 主要用在开发 Web 应用。这决定了使用 Node,往往离不开 Web 应用框架。

Koa 就是一种简单好用的 Web 框架。它的特点是优雅、简洁、表达力强、自由度高。本身代码只有1000多行,所有功能都通过插件实现,很符合 Unix 哲学。

本文从零开始,循序渐进,教会你如何使用 Koa 写出自己的 Web 应用。每一步都有简洁易懂的示例,希望让大家一看就懂。

零、准备

首先,检查 Node 版本。

$ node -v
v8.0.0

Koa 必须使用

查看全文: http://www.udpwork.com/item/16378.html

+0  React+Redux组合使用之感受

Tag: JavaScript | React | Redux
四火 发于 2017年06月11日 06:14 | 点击: 725 | 展开摘要
最近完成了一个使用React+Redux组合的项目,以前仅仅是接触了解以及学习,并未正儿八经地使用过,因此这一次可以说是第一次完整地再一个项目当中使用。因而对于认识之浅显请轻拍。

从架构和层次的层面,这个组合给我最好的感受是干净利落的解耦。有不少JavaScript框架尝试解决解耦问题,但是到了落实的层面上很容易出现分层分模块不容易严格控制,缺少清晰标准等问题。但是React+Redux的组合没有这个问题,我们把应用中JavaScript的部分分层为action、clien

查看全文: http://www.udpwork.com/item/16299.html

+0  JavaScript 内存泄漏教程

Tag: JavaScript
阮一峰 发于 2017年04月16日 20:35 | 点击: 950 | 展开摘要
一、什么是内存泄漏?

程序的运行需要内存。只要程序提出要求,操作系统或者运行时(runtime)就必须供给内存。

对于持续运行的服务进程(daemon),必须及时释放不再用到的内存。否则,内存占用越来越高,轻则影响系统性能,重则导致进程崩溃。

不再用到的内存,没有及时释放,就叫做内存泄漏(memory leak)。

有些语言(比如 C 语言)必须手动释放内存,程序员负责内存管理。

char * buffer;
buffer = (char*) malloc(42);

查看全文: http://www.udpwork.com/item/16214.html

+0  Reduce 和 Transduce 的含义

Tag: JavaScript
阮一峰 发于 2017年03月18日 16:50 | 点击: 857 | 展开摘要
学习函数式编程,必须掌握很多术语,否则根本看不懂文档。

本文介绍两个基本术语:reduce和transduce。它们非常重要,也非常有用。

一、reduce 的用法

reduce是一种数组运算,通常用于将数组的所有成员"累积"为一个值。

var arr = [1, 2, 3, 4];

var sum = (a, b) => a + b;

arr.reduce(sum, 0) // 10

上面代码中,reduce对数组arr的每个成员执行sum函数。sum的参数a

查看全文: http://www.udpwork.com/item/16182.html
|<<<1234567>>>| 一共21页, 245条记录