树 树是一种分层数据的抽象模型。 一个树结构包含一系列存在父子关系的节点。每个节点都有一个父节点(除了顶部的第一个节点)以及零个或多个子节点。 二叉树和二叉树搜索 二叉树中的节点最多只能有...
前端开发
JavaScript代码出现栈溢出之尾调用优化
说栈溢出之前,我们先来一起学习下调用栈,为什么了 什么是 javascript 调用栈 javascript 引擎是利用栈的这种数据结构来管理执行上下文的。在执行上下文创建好后,javascript 引擎会将执行上下文数据压入...
Chrome 浏览器 document.body.scrollTop 一直为0的问题
最近发现自己博客回到项部功能一直没有出现,经过多方查证,才发现因为document.body.scrollTop一直获取都是0。 不知道从Chrome哪个版本开始,页面最外层的滚动放到document上面去了,而不是body,所以获取需...
vue-cli 之 jest、@vue/test-utils 单元测试实践
安装 vue 项目 安装脚手架 npm install -g @vue/cli 创建项目 vue create vue-demo 安装步骤 用例1:renders 组件 // HelloWorld.vue <template> <div class="hell...
export ‘Switch’ (imported as ‘Switch’) was not found in ‘react-router-dom’
import React from 'react'; import { Switch, Route, Link } from 'react-router-dom'; import Home from './pages/Home'; import About from './pages/About'; export default () => { <div> ...
Javascript数据结构排序和搜索算法
排序算法 const Compare = { LESS_THAN: -1, BIGGER_THAN: 1, EQUALS: 0 }; function defaultCompare(a, b) { if (a === b) { return Compare.EQUALS; } else { return a < b ? Compar...
flexible.js 移动端自适应方案
一、官方文档: flexible.js是手淘开发出的一个用来适配移动端的js框架。手淘框架的核心原理就是根据制不同的width给网页中html根节点设置不同的font-size,然后所有的px都用rem来代替,这样就实现了不同大小...
immer.js 一个不可变的、结构共享的数据结构是存储状态的绝佳范例
Immer 是 mobx 的作者写的一个 immutable 库,核心实现是利用 ES6 的 proxy,几乎以最小的成本实现了 js 的不可变数据结构,简单易用、体量小巧、设计巧妙,满足了我们对JS不可变数据结构的需求。 在日常开发...
Javascript数据结构之字典和散列表
字典 集合表示一组不重复的元素,字典和集合相似。但存储方式不同,字典是以【键,值】的形式存储元素,集合是以【值,值】的形式存储元素。 set(key, value):向字典中添加新元素。如果 Key 已经存在,那...
Javascript数据结构之集合
数据集合 集合是由一组无序且唯一的元素组成。 add(element):向集合中插入一个新元素delete(element):从集合移除一个元素has(element):判断元素是否存在集合中clear():移除集合中所有元素size():返回...