为什么浮点数运算会产生误差

2021-07-09
阅读 4 分钟
10k
以下图的 Python 为例, 0.1 + 0.2 并不等于 0.3,8.7 / 10 也不等于 0.87,而是 0.869999…,真是太奇怪了 🤔

怎样把箭头函数作为事件侦听器的回调

2021-07-08
阅读 2 分钟
4.8k
ES6 引入了箭头函数的概念,这是一种新的定义和编写函数的方法。虽然它看起来像是常规函数的句法糖,但它们之间的关键差异是对 this 的绑定方式。在本文中并不会涉及关于 this 的大量细节

Web 架构设计入门

2021-07-07
阅读 2 分钟
4.2k
为什么在构建 Web 应用时架构的选择是如此的重要?确定架构是好是坏的标准是什么?本文介绍如何在设计支持你当前需求的Web 应用架构的同时不给未来埋坑。

代码越写越乱?那是因为你没用责任链

2021-07-06
阅读 7 分钟
4.4k
代码中的 httpErrorHandler 会接收 API 的响应错误,并对错误的状态码做不同的处理,所以代码中需要很多 if(或者 switch)判断当前需要要执行什么,当你要对新的错误添加处理代码时,就必须要到 httpErrorHandler 中修改代码。

# 用装饰器模式解决频繁修改的需求

2021-07-05
阅读 4 分钟
2.9k
这句话听起来可能有些矛盾,既然都要增加逻辑了,怎么可能不去修改原有的代码?但 SOLID (向对象设计5大重要原则)的开放封闭原则就是在试图解决这个问题,其内容是不去改动已经写好的核心逻辑,但又能够扩充新逻辑,也就是对扩展开放,对修改关闭。

用 Enum 提高TypeScript代码的可读性

2021-06-04
阅读 5 分钟
3.4k
但因为响应状态码都是预先定义好的,所以没什么争议,代码写成这样看也很正常,但是如果后端在服务器发生错误时自定义了一些编码,并告诉前端,这些代码都代表什么错误,那么上面的函数可能会变成这样:

一些不好记却很好用的 CSS 属性

2021-06-03
阅读 2 分钟
2.8k
在写过一点时间 CSS 之后,大家对于常见的属性应该都很熟了,例如最基本的 display、position、padding、margin、border、background 等等,在写 CSS 的时候不需要特别查什么东西,很顺的就可以写出来。

DOM Clobbering 的原理及应用

2021-06-02
阅读 10 分钟
6k
做为一个前端程序猿,肯定应该知道很多与前端相关的知识,像是 HTML 或是 JS 相关的东西,但这些通常都与“使用”有关。例如说我知道写 HTML 的时候要语义化,要使用正确的标签;我知道 JS 应该要怎么用。可是有些知识虽然也跟网页有关,却不是前端程序员经常接触的。

从一道毫无人性的刁钻面试题说起

2021-06-01
阅读 11 分钟
3.7k
换句话说,就在于代码中不能出现任何英文字母(a-zA-Z)与数字(0-9),除此之外(各种符号)都可以。执行式码之后,会执行 console.log(1),然后在控制台中输出 1。

在JavaScript中实现队列

2021-04-07
阅读 3 分钟
6.3k
如果你喜欢四处旅行,肯定在火车站经历过检票这道手续。如果有很多人要坐火车,那么很自然地会形成一个队列。刚进入车站的人加入队列。另一边刚刚通过检票的人从队列中走出。这就是队列的一个例子,与队列数据结构的操作方式相同。

一个能够确定 this 值的算法

2021-04-06
阅读 5 分钟
1.9k
把算法定义为 ThisValueOfFunction(func, invocationType) ,返回值为在以 invocationtype 方式调用函数 func 时的 this 值:

ES2018 中 4 个有用的功能

2021-04-05
阅读 6 分钟
2.5k
ES2018 规范引入了四个新功能。这些功能包括异步迭代,rest/spread 属性,Promise.prototype.finally() 和正则表达式改进。本问将帮你了解这些 ES2018 功能的工作原理及使用方法。

10分钟用Hugo打造一个静态网站

2021-04-02
阅读 3 分钟
8.7k
什么是静态网站生成器?简简单的说,静态网站生成器会获取你的内容,并将其应用于模板,然后生成基于 HTML 的静态网站。非常适合个人博客。好处:快速部署安全(无动态内容)快速迅速使用简单能够进行版本控制那么,都有哪些流行的静态网站生成器呢?Gatsby (React/JS)Hugo (Go)Next.js (React/JS)Jekyll (Ruby)Gridsome...

Sass / SCSS简明入门

2021-04-01
阅读 7 分钟
5.1k
Sass 是 CSS3 的扩展,添加了嵌套规则、变量、mixins、选择器继承等。可以用命令行工具或网络框架插件将其转换为格式良好的标准 CSS。

对网站进行测试的 9 个要点

2021-03-31
阅读 2 分钟
2.9k
网站或网页的效率在很大程度上取决于测试,并且涉及对网站或相关软件的细致检查。那么我们如何该测试 Web 程序呢?在探究 Web 程序测试服务的更多细节之前,先讨论一下测试为何如此重要。

用 WebGL 创建一个在线画廊

2021-03-30
阅读 19 分钟
2.6k
作者:Luis Henrique Bizarro翻译:疯狂的技术宅原文:[链接]下载源代码: [链接]在本文中,我们将基于 WebGL 与 OGL 来实现一个无限循环画廊。本文中所用到的大多数套路也可以用在其他 WebGL 库中,例如 Three.js 或 Babylon.js 中,但是需要一些小小的调整。创建 OGL 3D 环境首先要确保你正确设置了创建 3D 环境所需的...

弄死 Node.js 进程有几种方法

2021-03-29
阅读 5 分钟
7.2k
有几个原因会导致 Node.js 进程终止。其中一些是可以避免的,例如抛出错误时,而另一些是无法防止的,例如内存不足。全局 process 是一个 Event Emitter 实例,当执行正常退出时,将发出一个 exit 事件。然后程序代码可以通过侦听这个事件来执行最后的同步清理工作。

Web 安全简明入门指南

2021-03-26
阅读 3 分钟
4.3k
Web 安全已经是 Web 开发中一个重要的组成部分,而许多程序猿往往希望专注于程序的实现,而忽略了信息安全的实质。如果没有严谨地考虑到信息安全问题,等出了乱子之后反而会造成更严重的损失。所以要在开发网络应用时更注重 Web 安全,甚至努力成为一个白帽黑客。

js 引擎是怎样将 var 转换为 JIT 的

2021-03-25
阅读 5 分钟
3.4k
对于现代 Web 程序,浏览器首先看到的 JavaScript 通常不是前端程序员写的。相反,它很可能是由 webpack 之类的工具产生的捆绑包,而且可能是一个相当大的捆绑包,其中包含 UI 框架,例如 React,各种 polyfills(在较旧的浏览器中模拟新平台功能的库),以及在 npm 上找到的各种软件包。浏览器的 JavaScript 引擎面临的...

写TypeScript代码的10种坏习惯

2021-03-24
阅读 7 分钟
4.7k
近几年 TypeScript 和 JavaScript 一直在稳步发展。我们在过去写代码时养成了一些习惯,而有些习惯却没有什么意义。以下是我们都应该改正的 10 个坏习惯。

ES2019 中 8 个非常有用的功能

2021-03-23
阅读 5 分钟
3.3k
ES2019 规范是对 JavaScript的小规模扩展,但仍带来了一些有趣的功能。本文向你展示八个 ES2019 的功能,这些功能可以使你的开发变得更轻松。

这 7 道关于 this 的面试题,你能答对几个?

2021-03-22
阅读 4 分钟
6.4k
在 JavaScript 中,this 是函数调用上下文。正是由于 this 的行为很复杂,所以在 JavaScript 面试中,总是会问到有关 this 的问题。

关于 Node.js 中的异步迭代器

2021-03-19
阅读 4 分钟
2.9k
异步迭代器实际上是以前迭代器的异步版本。当我们不知道迭代的值和最终状态时,可以使用异步迭代器。两者不同的地方在于,我们得到的 promise 最终将被分解为普通的 { value: any, done: boolean } 对象,另外可以通过 for-await-of 循环来处理异步迭代器。就像 for-of 循环用于同步迭代器一样。

即将发布的 ES2021(ES12)中有哪些有趣的功能

2021-03-18
阅读 7 分钟
4.8k
ES2021(ES12)将于 2021 年中发布。在本文中,你将将会了解五个最有趣的功能:String.prototype.replaceAll(),数字分隔符,逻辑赋值运算符,Promise.any(),WeakRef 和Finalizers。

用装饰器模式增强 fetch()

2021-03-17
阅读 5 分钟
2.2k
fetch() 的用法非常简单:通过调用 fetch('/movies.json') 启动请求,请求完成后得到一个 Response 对象,然后从中提取数据。

这 7 道关于闭包的面试题,你能答对几个?

2021-03-16
阅读 5 分钟
11k
每个 JavaScript 程序员都必须知道闭包是什么。在 JavaScript 面试中,你很可能会被问到闭包的概念。以下是 7 个有关 JavaScript 闭包的面试题,比较有挑战性。不要查看答案或运行代码,看看自己的水平到底如何。做完这些题大约需要半小时左右。1. 热身有以下函数 clickHandler,immediate和delayedReload: {代码...} ...

关于 JavaScript 中的方法的全部知识点都在这了

2021-03-15
阅读 5 分钟
2.9k
1. 什么是方法首先让我们定义并调用常规函数: {代码...} 常规函数定义的形式为关键字 function 后跟名称、参数和函数体:function greet(who) {...} 。greet('World') 是常规函数调用。函数 greet('World') 从参数接受数据。如果 who 是对象的属性怎么办?要想轻松访问对象的属性,可以将函数附加到该对象,也就是创建...

这些IDE和代码编辑器你用过几个?

2021-03-12
阅读 5 分钟
5.2k
IDE与代码编辑器首先我们应该分辨 IDE 和代码编辑器之间的区别。简单的说,IDE 是一组集成在一起的工具:文本编辑器、编译器、构建或进行集成、调试等。通常 IDE 仅限于一种编码语言或框架。但有时我们只需要用来编辑代码的工具——代码编辑器。代码编辑器与典型的 IDE 不同,你可以把它用于自己喜欢的任何一种编码语言或...

`array.sort()` 的坑你踩过没有

2021-03-11
阅读 3 分钟
4.1k
在 JavaScript 中可以用 array.sort() 对数组进行排序。下面用它来对一些数字进行排序: {代码...} 呃。。。 numbers.sort() 的返回值居然是 [10,11,5],这是怎么回事?为什么在不带参数的情况下调用 array.sort() 时,没有按预期排序?1. array.sort() 不带参数array.sort() 是数组实例上的一个方法,用于对数组进行...

2020 年 Node.js 全球下载情况报告

2021-03-10
阅读 4 分钟
4.6k
2020 年是充满了变化和挑战的的一年。NodeSource Node.js 二进制文件下载量逐月增加,为全球数百万用户提供了Node.js的强大功能。