代码视界

Hanpeng Chen的个人博客

JavaScript设计模式——工厂模式

在瞬息万变的前端领域,技术更新迭代非常快,我们经常能在网络上看到诸如“学不动了”之类的言论。但是作为一名前端开发工程师,除了各种新技术,还有许多“一次学习,终身受益”的知识值得我们花时间去学习,设计模式就是其中之一。 设计模式在学习设...

一文彻底掌握HTTP缓存

缓存,作为性能优化的最有效方法之一,在面试过程中经常被问到,作为一名开发人员,缓存是必须掌握的一块知识。 浏览器缓存机制有四个方面:Memory Cache、Service Worker Cache、HTTP Cache、Push C...

LeetCode题解|206.反转链表

前言链表(Linked List)是一种常见的基础数据结构,是一种线性表,但是并不会按线性的顺序存储数据,而是在每一个节点里存到下一个节点的指针(Pointer)。 链表的结构如下图所示: 由于不是必须按顺序存储,链表在插入的时候可...

一文掌握9大跨域解决方案

什么是跨域跨域是指一个域下的文档或脚本试图去请求另一个域下的资源。通常我们讲的跨域,是由浏览器同源策略限制的一类请求场景。 同源策略同源指的是两个URL的协议、域名和端口三者都相同,即使两个不同 的域名指向相同的IP地址,也非同源。 ...

十大经典排序算法

前言在上一篇文章《Javascript-数组乱序》中我们提到不同浏览器采用不同的排序算法来实现Array.prototype.sort方法,今天我们一起来学习常见的几种排序算法。 我们常说的十大经典排序算法有:冒泡排序、选择排序、插入...

JavaScript数组乱序

前言对数组进行排序对我们来说很容易就能够实现,但是你有考虑过如何对一个有序的数组实现乱序,即随机排序吗? 数组乱序在实际开发过程中是可能碰到的,下面我们一起看看如何实现数组乱序。 sort + Math.random我们一开始可能会想...

JavaScript-数组去重

前言JavaScript的数组去重是前端比较常见的一个问题,今天我们来学习几种常见的数组去重方法。 欢迎关注我的微信公众号:前端极客技术(FrontGeek) 双层循环大部分人最先想到的是通过双层循环来去重。双层循环的实现原理很简...