别在不知道临时死区的情况下使用 JavaScript 变量

2019-10-16
阅读 5 分钟
1.6k
作者:Dmitri Pavlutin翻译:疯狂的技术宅 原文:[链接] 未经允许严禁转载 我问一个简单的问题。以下哪个代码片段将会产生错误? 第一个创建实例,然后定义所用的类: {代码...} 第二个先调用然后定义函数: {代码...} 正确答案:第一个代码段(带有类)将生成 ReferenceError。第二个工作正常。 如果你的答案与上述不同...

在 JavaScript 中轻松处理 “this”

2019-10-15
阅读 5 分钟
2.2k
作者:Dmitri Pavlutin翻译:疯狂的技术宅 原文:[链接] 未经允许严禁转载 我喜欢 JavaScript 中能够更改函数执行上下文(也称为 this)的特性。 例如,你可以在类似数组的对象上使用数组方法: {代码...} 但是从另一方面来说,this 关键字很难掌握。 你可能会经常去检查 this 的值不正确的原因。以下各节将会教给你一些...

如何使你的开源项目成功

2019-10-14
阅读 4 分钟
2.5k
作者:Dmitri Pavlutin翻译:疯狂的技术宅 原文:[链接] 未经允许严禁转载 你已经为一个有趣的问题工作了几个月,现在决定启动一个开源项目。你在 README.md 中编写了一些说明,并发布了1.0版。 几周后,人们对这个项目仍然没有什么兴趣。你做了大量的工作,付出了最大的努力,但是最后,仍然没有谁对它感兴趣。 怎么会...

用 map 代替纯 JavaScript 对象

2019-10-12
阅读 4 分钟
3.7k
作者:Dmitri Pavlutin翻译:疯狂的技术宅 原文:[链接] 未经允许严禁转载 JavaScript 普通对象 {key: 'value'} 可用于保存结构化数据。 但是我发现很烦人的一件事:对象的键必须是字符串(或很少使用的符号)。 如果用数字作键会怎样?在这种情况下没有错误: {代码...} JavaScript 只是将对象的键隐式转换为字符串。这...

为什么要使用 package-lock.json

2019-10-11
阅读 3 分钟
5.8k
作者:Kostas Bariotis翻译:疯狂的技术宅 原文:[链接] 未经允许严禁转载 在本文中,我们将介绍 package-lock.json 为什么重要,以及如何与 NPM CLI 一起使用。 历史 NPM v5 引入了 package-lock.json, 将其作为捕获在任意时刻安装的确切依赖树的机制。 这会有助于在不同环境中进行协作,在这种环境中,你希望每个人都...

W3C TPAC 大会上的 Service workers 内容总结

2019-10-10
阅读 8 分钟
2.2k
上个月,我们在福冈举行的 W3C TPAC 会议上召开了 service worker 会议。这是几年来我们第一次专注于潜在的新功能和行为。现总结如下:

用 cURL 请求测试 ETag 浏览器缓存

2019-10-09
阅读 4 分钟
4.6k
简而言之,ETag 标识符是一个值,通常是一个散列,代表特定 Web 资源的版本。该资源与 ETag 值一起缓存在浏览器中,并且服务器会在确定特定的缓存资源是否已更改时使用该值。

用 NodeJS 充分利用多核 CPU 的资源

2019-10-08
阅读 4 分钟
9k
单个 Node.js 程序的实例仅在一个线程上运行,因此无法充分利用 CPU 的多核系统。有时你可能需要启动 Node.js 进程集群来利用本地计算机或生产服务器上的每个 CPU 内核。

编码与编程的区别是什么?

2019-09-30
阅读 4 分钟
17.6k
每个工作领域都有它们的术语表——特定的词与日常生活中的含义截然不同。对于不断发展的软件业的专业词汇尤其如此。在软件开发领域,“engagement”与婚礼无关,“cookies”不能吃,“classes”不是你必须参加的事情,甚至“bug”也由于不同的原因而令人讨厌。另一个例子是关于编码与编程(coding vs programming)的争论——这是软...

JavaScript中的异步生成器函数

2019-09-29
阅读 4 分钟
5.1k
作者:Valeri Karpov翻译:疯狂的技术宅 原文:[链接] 未经允许严禁转载 TC39异步迭代器提案 将 for/await/of 引入了 JavaScript,还介绍了异步生成器函数的概念。现在 JavaScript 有 6 种不同的函数类型: 默认函数 function() {} 箭头函数 () => {} 异步函数 async function() {} 异步箭头函数 async () => {} ...

更轻量级的 V8 引擎

2019-09-27
阅读 5 分钟
4.7k
在 2018 年末,为了大幅减少 V8 的内存使用量,我们启动了一个名为 V8 Lite 的项目。该项目最初被设想为 V8 的一个独立的 精简模式(Lite mode),专门针对低内存移动设备或嵌入式用例,这些用例更关心的是减少内存的使用而不是吞吐量的执行速度。但是在进行这项工作的过程中,我们意识到为Lite 模式所做的许多内存优化...

JavaScript 的 Map 指南

2019-09-26
阅读 4 分钟
3.2k
如果你要创建一个存储一些键/值路径的 JavaScript 对象,可以定义一个普通 JavaScript 对象(plain-old JavaScript object),其简称为“ POJO”,如下所示。

Javascript 的新功能 — Part 1

2019-09-25
阅读 7 分钟
2k
作者:Deepak Gupta翻译:疯狂的技术宅 原文:[链接] 未经允许严禁转载 JavaScript 的应用领域已经从 Web 浏览器扩展到所有需要编程的地方。 Node.js — 用于CLI和服务器。 Electron — 用于跨平台的桌面应用程序。 React native — 用于跨平台的移动应用。 IoT — 低成本物联网设备现在开始支持 javascript。 最近更新的 V8...

用JavaScript把CSV与Excel转为Json

2019-09-24
阅读 6 分钟
7.2k
CSV 表示 :用逗号分隔值这是一种文件格式,用于存储表格数据,如电子表格或数据库等。 可以将 CSV 格式的文件导入或导出到将数据存储在表中的程序中。 JSON: JavaScript 对象符号

用 JavaScript 操作 Cookie

2019-09-23
阅读 3 分钟
2.4k
当用户访问网页时,他们的名字、唯一 ID 或其他任何信息都可以存储在浏览器的 cookie 中。 当用户下次又回到网页时,cookie 将记住他们的名字或唯一 ID。

在 HTML 中包含资源的新思路

2019-09-20
阅读 4 分钟
2k
注意:这篇文章描述了一种我们仍需要测其试性能影响的实验技术。 它可能最终会成为一种有用的工具,也有可能成为不被推荐的做法。 无论哪种方式,它对我们来说很有吸引力!

5G 有可能会使 Web 明显变慢

2019-09-19
阅读 3 分钟
3.4k
5G 的小图标开始逐渐出现在世界各地的手机屏幕上。如果你已经开始使用了,可能会注意到,感觉上其速度并没有超过 4G 一大截,我同意这个观点。据了解,这是因为初期基础设施过渡的阻碍,但随着它的成熟,预计 5G 会极大的提高网络速度。在2019年预测的下载速度为平均每秒 100M 到 1G 比特。以这样的速度,你下载朋友的整...

Git 版本控制的核心概念

2019-09-18
阅读 6 分钟
4k
例如就在前几天,我大约只用了 20 分钟就解决了一个已经投入生产环境的重大问题(完全是我的错)。如果没有 Git,这可能需要几天的时间来修复。

JavaScript和TypeScript中的符号

2019-09-17
阅读 6 分钟
5.2k
symbol 是 JavaScript 和 TypeScript 中的原始数据类型,可用于对象属性。与 number 和 string 相比,symbol 具有一些独特的功能,使它脱颖而出。

用 JavaScript 实现一个简单的状态机

2019-09-16
阅读 4 分钟
3k
使用状态机可以构建健壮的 UI,其好处已有详细的描述—— 例如你可以参见Edward J. Pring 的文章和 David Khourshid 的视频。 另外Krasimir Tsonev 描述了 JavaScript 中状态机的一些常用方法。一些比较流行的 JavaScript 库是 jakesgordon/javascript-state-machine 和 davidkpiano/xstate 。

JavaScript和TypeScript中的void

2019-09-12
阅读 3 分钟
4.2k
void 作为运算符存在于 JavaScript 中,而作为基本类型存在于 TypeScript 中。在这两个世界中,void 的工作机制与大多数人习惯的有点不同。

用 Mongoose 插件记录Node.js API 日志

2019-09-11
阅读 5 分钟
3.2k
作者:Shailesh Shekhawat翻译:疯狂的技术宅 原文:[链接] 未经允许严禁转载 本教程需要事先了解mongoose 对象关系映射(ORM)技术 介绍 随着程序的增长,日志记录成为跟踪所有内容的关键部分。它对于调试目的尤为重要。 现在已经有了 npm 的日志记录模块。这些模块可以将日志存储在不同格式或级别的文件中。我们将使用...

把 WebAssembly 用于提升速度和代码重用

2019-09-10
阅读 12 分钟
2.9k
有这样一种技术,可以把用高级语言编写的非 Web 程序转换成为 Web 准备的二进制模块,而无需对 Web 程序的源代码进行任何更改即可完成这种转换。浏览器可以有效地下载新翻译的模块并在沙箱中执行。执行的 Web 模块可以与其他 Web 技术无缝地交互 - 特别是 JavaScript(JS)。欢迎来到WebAssembly。

Node.JS 应用最佳实践:日志

2019-09-09
阅读 6 分钟
5k
作者:Mahesh Haldar翻译:疯狂的技术宅 原文:[链接] 未经允许严禁转载 日志记录是每个开发人员从第一天编写代码时就要做的事情,但很少有人知道它可以产生的价值和最佳实践。 在本文中,我们将讨论以下主题: 什么是日志,为什么很重要性? 记录日志的最佳做法 日志的重要部分 正确使用日志级别 为什么选择 Winston? ...

机器学习、数据科学和数据挖掘中的数据集类型

2019-09-07
阅读 2 分钟
7.2k
作者:Tarun Gupta翻译:疯狂的技术宅 [链接] 未经允许严禁转载 数据集有三个一般特征,即:维度,稀疏度,和分辨率。接下来我们将讨论它们究竟是什么意思。 什么是维度? →数据集的维度是数据集中对象所具有的属性的数量。 在特定数据集中,如果存在大量属性(也称为高维度),则可能很难分析这样的数据集。当遇到这个...

内置于浏览器中的国际化API

2019-09-06
阅读 4 分钟
3.6k
你的程序很有可能需要支持多种语言。其中包括对语言敏感的日期处理。一个广受欢迎的库Moment.js有助于实现这一目标,它的功能之一是国际化。 其源代码中包含对许多不同语言的本地化。现在这可能已经不是最好的方法了,因为我们有 ECMAScript 国际化 API。

在 Vue.js 中使用无状态组件

2019-09-05
阅读 5 分钟
5k
作者:Nwose Lotanna翻译:疯狂的技术宅 原文:[链接] 未经允许严禁转载 在本文中,你将了解功能组件,并了解如何在 Vue 中使用工作流中的无状态组件。 在开始之前 你的PC需要以下内容: 安装 Node.js version 10.x 或以上版本。可以通过在终端中运行以下命令来验证你是否安装了此版本的Node.js: {代码...} Visual Stud...

在 JavaScript 中用海龟图形概念绘图

2019-09-04
阅读 6 分钟
3.8k
对于那些不熟悉海龟图形的人来说,这是一个使用虚拟“海龟”绘制图形的概念,当海龟四处移动时,它的尾巴会在屏幕上留下痕迹。海龟有几个简单的命令:向前/向后移动 x 步,向左/向右转 x 度等。

向钢铁侠学习怎样开发软件

2019-09-03
阅读 7 分钟
4.6k
现在要写出优秀的代码并不是一个真正的问题。一切都只是先进行 Google 搜索,然后只需找到 Stackoverflow 的第一个链接,找到最受欢迎或赞同最多的答案并复制粘贴就足够了!

用 Jest 进行 JavaScript 测试(2019)

2019-09-02
阅读 10 分钟
4.9k
作者:Valentino Gagliardi翻译:疯狂的技术宅 原文:[链接] 未经允许严禁转载 测试是什么意思? 在技​​术术语中测试意味着检查我们的代码是否符合某些预期。例如:给定一些输入,一个名为“transformer”的函数应返回预期的输出。 有许多类型的测试,很快你就会被术语所淹没,让我们长话短书。测试分为三大类: 单元测试 ...