封面图

D3.js —— 绘制饼图

2023-02-12
阅读 6 分钟
2k
上一篇文章我们完整实现了一个柱状图,并且提到了一个比例尺的概念。这篇文章我们继续来学习 D3.js,但是呢是用它来绘制一个饼图。那么废话不多说,我们正式开始🏃
封面图

D3.js —— 绘制柱状图(二)

2023-02-10
阅读 3 分钟
1k
上一篇文章 我们讲了 D3.js 中一些常见的 API,并且通过一个 demo 了解了 D3.js 是如何工作的。铺垫完之后,这篇文章我们正儿八经的来实现一个柱状图。

封面图

D3.js —— 绘制柱状图(一)

2023-02-04
阅读 6 分钟
1.3k
D3.js 是一个基于 JavaScript 开发的库,主要是用于在浏览器中操作 SVG、HTML、CSS ,通常我们可以利用它来进行一些图表绘制的工作。
封面图

盘点那些 React Hooks 里常见的问题

2021-06-11
阅读 4 分钟
2.2k
实际使用中有时候会碰到 Infinite Chain Of Update 这个报错,其实就是你的一段代码引发了「死循环更新」。下面我们来看几个例子👇
封面图

泛型工具及实现

2021-06-06
阅读 3 分钟
1.8k
可实现的泛型工具Pick定义From T, pick a set of properties whose keys are in the union K大意:从 T 中挑出一些属性集合 K 来组成新的类型,举个例子: {代码...} 源码 {代码...} Exclude定义Exclude from T those types that are assignable to U大意:从 T 中剔除一些属性,举个例子: {代码...} ⚠注意这里 Child ...
封面图

JavaScript 事件机制

2021-05-05
阅读 2 分钟
1.6k
点击、滚动、触摸、拖拽……这些用户与 web 页面交互的手段都可以称之为「事件」,了解 JavaScript的事件机制,无论是对优化一些用户交互亦或是处理线上 BUG 都会有很大的帮助。
封面图

盘点常见的JSON用法

2020-09-05
阅读 2 分钟
1.3k
JSON 是什么?JSON 是一种语法,可以用来序列化对象、数组或者数字等数据类型。换句话说,我们可以利用 JSON 来将数据转成字符串的形式。常见的 APIJSON.parse功能还原被序列化的数据(反序列化),即将字符串还原为它本来的数据结构。参数text,即将要被「反序列化」的字符串reviver,处理字符串的回调函数,可以参与到...
封面图

盘点那些常见的 JS 数组方法及 Polyfill

2020-09-05
阅读 4 分钟
1.8k
前言虽然有时候遍历数组只需要 for 循环则足矣,但是如果 API 利用得当,往往能更大程度的提高代码的可读性,减少心智负担~常见的数组 APIArray.prototype.some功能判断数组中是否至少有一个项通过了预设的条件,结果返回 boolean。参数callback:执行的回调函数,用于条件判断。thisArg:执行函数的 this 指针。场景判...

LeetCode偶尔一题 —— 53. 最大子序和

2019-11-15
阅读 2 分钟
1.1k
这道题其实可以直接从题目提供的输入输出着手,对于输入为:[ -2, 1, -3, 4, -1, 2, 1, -5, 4 ] 的详细分析如下:

LeetCode偶尔一题 —— 1. 两数之和

2019-10-25
阅读 2 分钟
1.3k
题目描述? 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。 你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。 题目剖析? 一、 暴力搜索 双层循环,尝试每一个可能的和 找到 nums[i] + nums[j] === target时返回 [i, j...

LeetCode偶尔一题 —— 461. 汉明距离

2019-10-07
阅读 1 分钟
1.3k
原题地址:[链接] repo 地址: [链接] 题目剖析? 两个整数之间的汉明距离指的是这两个数字对应二进制位不同的位置的数目。给出两个整数 x 和 y,计算它们之间的汉明距离。 比如说存在这样两个二进制数值: 001 100 它们之间的汉明距离就是 2,我们要求的就是两个二进制数值中位数不一样的地方,比如你是 1 他是 0,那么汉...

LeetCode偶尔一题 —— 430. 扁平化多级双向链表

2019-09-22
阅读 2 分钟
1.5k
遇到问题我们首先要先搞清楚问题到底是什么,然后再想办法解决。对于 链表 的问题其实大部分都不算难,写代码之前最好动动笔在纸上画一下,思路便会清晰很多。

LeetCode偶尔一题 —— 908. 最小差值 I

2019-09-16
阅读 1 分钟
1.7k
给出一个整数 k,找到一个整数 x 且整数 x 满足 -k <= x <= k,与 A[i] 相加之后得到数组 B。我们得到的就是数组 B 中最大值与最小值的最小差值

LeetCode偶尔一题 —— 14. 最长公共前缀

2019-09-03
阅读 1 分钟
1.3k
原题地址:[链接] 题目描述 分析题目 对于这道题最直观的感觉就是: 找到第一个字符串 target 进行按列的水平扫描 我的代码如下: {代码...} 时间复杂度:O(s),s = m + n(s就是总的字符串的长度) 空间复杂度:O(1) 当然,这道题还有其他解法,比如二分法、分治法,官方题解 已经写得非常细致了,这里就不重复写了。 ...

【干货】前端进阶应该知道的这些调试方法

2019-08-31
阅读 3 分钟
2.1k
平时工作量大并且很忙,也就意味着难免会在写代码的时候一不小心写出BUG。如果测试一旦没有测到,代码上到现网往往就是事故,很多同学在这种时候手忙脚乱,不知道怎么调试解决。本文就这点主要讲一下平时前端调试用的那些方法,希望能够给到大家帮助。

LeetCode偶尔一题 —— 832. 翻转图像

2019-08-19
阅读 2 分钟
1.4k
题目描述 分析题目 按照题意我们只要先对每个子数组先做逆序,再做 0 --> 1 和 1 --> 0 的替换即可,于是我们可以写出以下代码: {代码...} 优化 对于 0 --> 1 和 1 --> 0 的替换,我们大可不必用三元运算符,而是采用异或运算,可以把代码简化如下: {代码...} 进阶 仔细观察题目中提供的测试用例,我们发...
封面图

TypeScript 入门指北(二)

2019-08-16
阅读 3 分钟
1.3k
上篇文章我们提到了为什么要学 TypeScript, 以及通过 TypeScript 跟 JavaScript 的简单对比,熟悉了 TypeScript 一些较为基础的语法。
封面图

TypeScript 入门指北(一)

2019-08-14
阅读 4 分钟
1.5k
随着前端在各种类型的项目中扮演的角色越来越重要,人们发现 JavaScript 这门弱类型语言已经不能满足当下的需求,尤其是在一些大中型项目中,JavaScript 远远没有一些强类型语言用得顺手,而 TypeScript 因此诞生。

LeetCode偶尔一题 —— 64. 最小路径和

2019-07-30
阅读 2 分钟
1.6k
给定一个包含非负整数的 m x n 网格,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。 说明:每次只能向下或者向右移动一步。示例:

LeetCode偶尔一题 —— 268. 缺失数字

2019-07-26
阅读 2 分钟
1.3k
题目描述 给定一个包含 0, 1, 2, ..., n 中 n 个数的序列,找出 0 .. n 中没有出现在序列中的那个数。 示例 1: 输入: [3,0,1] 输出: 2 示例 2: 输入: [9,6,4,2,3,5,7,0,1] 输出: 8 最简单的解法 刚看到的这道题的时候,第一感觉就是排序,之后直接挨个比较就能找到缺失的数字。时间复杂度:O(nlog(n)),空间复杂度:O(1)...

LeetCode偶尔一题 —— 19. 删除链表的倒数第N个节点(链表系列)

2019-07-25
阅读 1 分钟
1.1k
给定一个链表: 1->2->3->4->5, 和 n = 2. 当删除了倒数第二个节点后,链表变为 1->2->3->5.

LeetCode偶尔一题 —— 39. Combination Sum(回溯算法系列)

2019-07-03
阅读 2 分钟
2.1k
Given a set of candidate numbers (candidates) (without duplicates) and a target number (target), find all unique combinations in candidates where the candidate numbers sums to target. The same repeated number may be chosen from candidates unlimited number of times. Note: All numbers (including ta...

根据调试工具看Vue源码之虚拟dom(三)

2019-06-10
阅读 9 分钟
1.7k
上次我们提到的 _render 函数其实作为 _update 函数的参数传入,换句话说,_render 函数结束后 _update 将会执行?

我在移动端上遇到的那些疑难杂症

2019-06-08
阅读 2 分钟
1.5k
工作一年多了,相信在座的各位前端也都跟我一样,对在手机上,特别是iphone上出现的各种兼容性感到非常头疼。这篇文章仅作为一份记录供大家参考。

根据调试工具看Vue源码之虚拟dom(二)

2019-05-12
阅读 5 分钟
1.7k
上回我们提到,在子组件存在的情况下,父组件在执行完created钩子函数之后生成子组件的实例,子组件执行created钩子函数,同时也检查是否也有子组件,有则重复父组件的步骤,否则子组件的dom元素渲染

深入了解Vue响应式系统

2019-04-26
阅读 8 分钟
2.4k
前面几篇文章一直都以源码分析为主,其实枯燥无味,对于新手玩家来说很不友好。这篇文章主要讲讲 Vue 的响应式系统,形式与前边的稍显不同吧,分析为主,源码为辅,如果能达到深入浅出的效果那就更好了。

根据调试工具看Vue源码之虚拟dom(一)

2019-04-02
阅读 7 分钟
2.4k
createElement 到底会返回什么呢?其实不是一个实际的 DOM 元素。它更准确的名字可能是 createNodeDescription,因为它所包含的信息会告诉 Vue 页面上需要渲染什么样的节点,及其子节点。我们把这样的节点描述为“虚拟节点 (Virtual Node)”,也常简写它为“VNode”。“虚拟 DOM”是我们对由 Vue 组件树建立起来的整个 VNode ...

根据调试工具看Vue源码之watch

2019-03-24
阅读 9 分钟
2.5k
一个对象,键是需要观察的表达式,值是对应回调函数。值也可以是方法名,或者包含选项的对象。Vue 实例将会在实例化时调用 $watch(),遍历 watch 对象的每一个属性。

根据调试工具看Vue源码之computed(二)

2019-03-16
阅读 5 分钟
2.4k
上回提到,computed————计算属性的缓存与Watcher这个类的dirty属性有关,那么这次我们接着来看下,dirty属性到底取决于什么情况来变化,从而对computed进行缓存。

根据调试工具看Vue源码之computed(一)

2019-03-10
阅读 5 分钟
3.3k
计算属性的结果会被缓存,除非依赖的响应式属性变化才会重新计算。注意,如果某个依赖 (比如非响应式属性) 在该实例范畴之外,则计算属性是不会被更新的。

根据调试工具看Vue源码之组件通信(一)

2019-02-26
阅读 5 分钟
5.3k
在平时的业务开发中,相信在座的各位没少用过组件通信。然而,对于一些新手/业务熟手来说,不懂技术原理往往知其然而不知其所以然,用得一脸懵逼。看完本文可以帮助你了解Vue组件的通信方式及原理,从而进一步加深对Vue的理解,远离CV工程师的行列。

根据调试工具看Vue源码之生命周期(一)

2019-02-04
阅读 2 分钟
2.8k
由于工作中经常使用chrome调试工具来定位问题,觉着这东西真的挺好用。突然有一天受到启发,想着:“我学习源码是否也可以通过调试工具呢?” 因此,诞生了这篇文章来记录我的一些学习成果,后续应该会写成一个系列。
封面图

使用JavaScript完成二叉树的一些基本操作

2018-11-05
阅读 5 分钟
6k
本篇为复习过程中遇到过的总结,同时也给准备面试的同学一份参考。另外,由于篇幅有限,本篇的重点在于二叉树的常见算法以及实现。常见的二叉树实现代码之前写过相关的文章,是关于如何创建及遍历二叉树的,这里不再赘述。提供链接给各位感兴趣的小伙伴,点此跳转翻转二叉树对于一棵二叉树,翻转它的左右子树,如下图所...
封面图

手把手教你写一份优质的前端技术简历

2018-11-04
阅读 4 分钟
20.5k
不知不觉一年一度的秋招又来了,你收获了哪些大厂的面试邀约,又拿了多少offer呢?你身边是不是有挺多人技术比你差,但是却拿到了很多大厂的offer呢?其实,要想面试拿offer,首先要过得了简历那一关。如果一份简历不合格,那么会错失很多珍贵的面试机会。说了这么多,我们要怎么写出一份合格,甚至优秀的技术简历呢?经...