怎样设计一个 JavaScript 插件系统

2020-10-12
阅读 5 分钟
7.6k
插件是库和框架中很常见的功能,并且有一个充分的理由:它们允许开发人员以安全、可扩展的方式添加新的功能。这能够使你的项目具有更高的价值,而且也不会增加太多额外的维护负担。

在 JavaScript 中定义函数的不同方法

2020-10-10
阅读 3 分钟
3.8k
作者:Samer Buna翻译:疯狂的技术宅原文:[链接]未经允许严禁转载你知道在 JavaScript 中创建一个函数有多少种方式吗?1. 声明函数 {代码...} 2. 表达式函数 {代码...} 3. 箭头函数 {代码...} 4. 生成器函数 {代码...} 5. 异步函数 {代码...} 6. 构造函数(AVOID) {代码...} 7. 导出函数 {代码...} 8. 对象属性函数 {...

JavaScript计时器:你需要了解的所有内容

2020-10-09
阅读 7 分钟
8.2k
作者:Samer Buna翻译:疯狂的技术宅原文:[链接]未经允许严禁转载先从一个面试题开始:JavaScript 面试题:setTimeout 和 setInterval 的源代码是在哪里实现的? (不能百度和谷歌? )在继续往下看之前,请先在你的头脑中回答问题你的答案可能会是 V8(或其他VM),但很遗憾,这是错的。尽管 “JavaScript Timers” 的应...

Vuex 映射指南

2020-09-24
阅读 4 分钟
4.5k
使用 Vuex 之前,你应该先了解四个主要概念:state、getter、mutation 和 action。一个简单的 Vuex 状态在 store 中的这些概念中操作数据。 Vuex 中的映射提供了一种从中检索数据的好方法。

JavaScript 的 var,let 和 const 总结

2020-09-23
阅读 4 分钟
3k
作者:Valentino翻译:疯狂的技术宅[链接]未经允许严禁转载varvar 语句用来在 JavaScript 中声明一个变量,该变量遵守以下规则:作用域范围是函数作用域或全局作用域的。不受暂存死区(TDZ)的限制。它会在 window 上以相同的名称创建一个全局属性。是可分配的。是可声明的。函数作用域和全局作用域当出现在全局作用域内...

用 WebGL 做一个齿轮动画

2020-09-22
阅读 10 分钟
4.6k
本文继续 “WebGL 的第一步” 中的内容,上一篇文章中我讲述了 WebGL是什么以及它是如何工作的,包括:shader、program、缓冲区、如何将数据从 CPU 链接到 GPU 和最终怎样渲染三角形。

开发WebGL的第一步

2020-09-21
阅读 6 分钟
4.8k
在本文中,我们将了解什么是 WebGL,以及如何通过与 GPU 进行对话来绘制“三角形”。尽管有更好的方法来实现本文中的例子,例如用具有 2d 上下文的 canvas 甚至可以用 CSS,但我们要从 WebGL 开始。就像 “hello world” 一样,了解它是如何工作的。

面向对象与函数式编程的简单案例

2020-09-18
阅读 10 分钟
3.3k
作者:Jakob Klamser翻译:疯狂的技术宅原文:[链接]未经允许严禁转载介绍先简要介绍一下面向对象和函数式编程。两者都是编程范式,在允许和禁止的技术上有所不同。有仅支持一种范式的编程语言,例如 Haskell(纯函数式)。还有支持多种范式的语言,例如 JavaScript,你可以用 JavaScript 编写面向对象的代码或函数式代...

Async/Await有什么用?

2020-09-17
阅读 7 分钟
6.6k
当我第一次看到 async/await 的描述时有点困惑,直到我了解了 async/await 的出处,才领悟到它的价值。本文我们来讨论 javascript 世界中最先进的异步编程思想之一。

值得收藏的在线设计工具

2020-09-16
阅读 4 分钟
4.2k
与PNG、JPG 或 GIF一样,SVG 图像也可以用作 CSS 中的背景图像。这是一种很酷的方法,因为我们可以将主要元素本身与纯色背景颜色匹配,并使页面背景渗入 SVG 内部的负空间。

JavaScript 错误处理大全

2020-09-15
阅读 18 分钟
4k
编程中有什么错误?在我们的程序中,事情并非一帆风顺。特别是在某些情况下,我们可能希望在停止程序或在发生不良状况时通知用户。例如:程序试图打开一个不存在的文件。网络连接断开。用户进行了无效的输入。在所有的这些情况下,我们作为程序员都会产生错误,或者让编程引擎为我们创建一些错误。在创建错误之后,我们...

Node.js 中的异步生成器和异步迭代

2020-09-14
阅读 6 分钟
3.3k
生成器函数在 JavaScript 中的出现早于引入 async/await,这意味着在创建异步生成器(始终返回 Promise 且可以 await 的生成器)的同时,还引入了许多需要注意的事项。

快速优化 Web 性能的10 个手段

2020-09-11
阅读 6 分钟
2.9k
在本文中,我将向你展示 10 个快速优化 Web 性能的手段,能在 5 分钟内用于你自己的网站。这些捷径对你的代码库或服务器配置几乎没有什么影响。它们简单且容易实现,无需详细了解它们的原理,并且能够对你的性能产​​生重大影响。

ES6 的循环和可迭代对象

2020-09-10
阅读 5 分钟
4.8k
作者:Alan Storm翻译:疯狂的技术宅原文:[链接]未经允许严禁转载本文将研究 ES6 的 for ... of 循环。旧方法在过去,有两种方法可以遍历 javascript。首先是经典的 for i 循环,它使你可以遍历数组或可索引的且有 length 属性的任何对象。 {代码...} 其次是 for ... in 循环,用于循环一个对象的键/值对。 {代码...} f...

最全面的 Deno 入门教程

2020-09-09
阅读 12 分钟
8.8k
Deno 是新的 JavaScript 和 TypeScript 运行时。Node.js 的发明者 Ryan Dahl 于 2020 年发布了 Deno,作为 Node.js 的改进。但是 Deno 不是 Node.js,而是全新的 JavaScript 运行时,同时也支持 TypeScript。与 Node.js 相似,Deno 可用于服务器端 JavaScript,但其目的是消除 Node.js 所犯的错误。它就像 Node.js 2.0 ...

Javascript 生成器(Generator)

2020-09-08
阅读 3 分钟
5k
作者:Alan Storm翻译:疯狂的技术宅原文:[链接]未经允许严禁转载什么是生成器?生成器是在函数内部运行的一些代码返回值后,它会自行暂停,并且——调用程序可以要求取消暂停并返回另一个值这种“返回”不是传统的从函数 return。所以它被赋予了一个特殊的名称——yield。生成器语法因语言而异。 Javascript 的生成器语法类...

免费 UI 套件精选

2020-09-04
阅读 3 分钟
4.1k
本文列出了精心挑选的清单,其中包含精美且免费的 UI 套件,这些套件可以直接从 Github 下载源代码。Jinja版本由 AppSeed 提供,该平台使用自动化工具生成简单的 dashboards 和应用。Free UI-Kits 列表Free UI Kit - Quick - d由Webpixels设计Free UI Kit - Pixel Lite - 设计由ThemesBerg提供Free UI Kit- Boomerang - ...

14个最佳免费图标资源网站

2020-09-03
阅读 4 分钟
13k
翻译:原文:[链接]未经允许严禁转载在本文中我精心挑选出了 14 个最好的免费图标网站,使你不必再去四处寻找资源。LineIcons网址:[链接]LineIcons 是 2020 年最好的免费图标库之一。它为开发人员和设计师提供了 2000 多种专为现代用户界面手工制作的线条图标。其中包括 Android、iOS、Web 以及桌面应用程序项目。这个...

在Deno中使用 Node 模块

2020-09-02
阅读 3 分钟
5.6k
尽管方法不是很好,但有时别无选择。Deno 是基于 Web 技术的服务器端代码执行环境。Node 使用 JavaScript 与 commonjs 模块,并把 npm/yarn 作为其包管理器。Deno 使用 Typescript 或 JavaScript, 以及现代的 javascript 导入语句。它不需要包管理器。想要导入 deno 中的模块,应该通过 URL 引用: {代码...} 你可以在 ...

在 JavaScript 中交换值的 10 种方法

2020-09-01
阅读 6 分钟
5k
在开发过程中又是我们需要对值进行交换。一般我们都在用一种简单的解决方案:“临时变量”。不过还有更好的办法,而且不只有一个,有很多。有时我们在网上搜寻解决方案,找到后复制粘贴,但是从没想过这小段代码是怎样工作的。现在我们该学习一下应该怎样轻松高效地交换值了。

方便快捷的调试 Node.js 程序

2020-08-31
阅读 3 分钟
3.4k
在调试程序时总是会遇到各种挑战。 Node.js 的异步工作流为这一艰巨的过程增加了额外的复杂性。尽管 V8 引擎为了方便访问异步栈跟踪进行了一些更新,但是在很多数情况下,我们只会在程序主线程上遇到错误,这使得调试有些困难。同样,当我们的 Node.js 程序崩溃时,通常需要依靠一些复杂的 CLI 工具来分析核心转储。

用 Docker 打包 Nodejs 程序

2020-08-19
阅读 4 分钟
9k
作者:NJOKU SAMSON EBERE原文:[链接]你听到过这样的对话吗? {代码...} 这种对话很常见。这一般是由于工作环境设置或配置不同而引起的。这就是为什么要使用 docker 的主要目的。在文中,我将教你什么是 docker,为什么使用以及怎样用来给 nodejs 程序打包。什么是Docker?Docker 的定义为:Docker 是一个容器化平台,...

10 个用纯 Javascript 实现的好用插件

2020-08-18
阅读 3 分钟
4.4k
现代 JavaScript 框架使构建复杂的 Web 应用变得非常容易。 Vanilla JavaScript 指的是纯 Javascript 代码,没有使用任何框架进行扩展,这在创建小型应用程序时很好用。

JavaScript空值合并运算符

2020-08-17
阅读 3 分钟
3.4k
今年ECMAScript 2020(ES2020)将发布!自 2015 年 ECMAScript 2015(ES6)发布以来,我们每年都对 JavaScript 语言进行更新。

探索闭包

2020-08-14
阅读 5 分钟
2.6k
闭包有各种不同的形式。很多人在注意到闭包时,实际上他们已经在不知不觉中多次使用过了——可能你也是如此。所以学习闭包不是要去了解什么新概念,而是要了解你已经接触过的东西。

构建一个带身份验证的 Deno 应用

2020-08-13
阅读 8 分钟
2.6k
Node.js 的创建者 Ryan Dahl 创建了一个用于设计 Web 应用程序的新框架。他回过头来,利用在最初编写 Node 时还不可用的新技术,纠正了事后发现的一些错误。这就是 Deno(发音为 DEH-no),一个用 TypeScript 编写的 “类似 Node 的” Web 应用的框架。在本文中,我将引导你创建一个带有身份验证的基本 Web 应用。

在Node.js中使用Zip文件

2020-08-12
阅读 3 分钟
4.4k
从 adm-zip 的 npm 模块中导出一个 AdmZip 类。 AdmZip的实例对应于一个zip文件。如果想要创建一个新的 zip 文件,在调用 new AdmZip() 时不应带任何参数:

DevTools(Chrome 85)的新功能

2020-08-11
阅读 5 分钟
2.9k
Network 面板的 Timing 选项卡现在增添了 respondWith 事件,该事件记录了 service worker fetch 事件处理运行 promise 所达成的时间(issue #1066579)

浅析 JavaScript 中的事件委托

2020-08-10
阅读 4 分钟
8.3k
作者:Dmitri Pavlutin翻译:疯狂的技术宅原文:[链接]未经允许严禁转载为什么要进行事件委托?首先实现一个小功能:在单击 HTML 的按钮后,把消息输出到控制台。为了实现这个小功能,你需要选择按钮,然后再用 addEventListener() 方法来附加事件监听器: {代码...} 以上就是侦听单个元素(尤其是按钮)上事件的方式。...

深入研究 Node.js 的回调队列

2020-08-04
阅读 6 分钟
3.4k
作者:Dillion Megida翻译:疯狂的技术宅原文:[链接]未经允许严禁转载队列是 Node.js 中用于有效处理异步操作的一项重要技术。在本文中,我们将深入研究 Node.js 中的队列:它们是什么,它们如何工作(通过事件循环)以及它们的类型。Node.js 中的队列是什么?队列是 Node.js 中用于组织异步操作的数据结构。这些操作以...