登录/注册 搜索
首页 / SEO基础 / 2.前端去重的方法有哪些?(上篇)
返回

2.前端去重的方法有哪些?(上篇)

浏览次数:56 分类:SEO基础

前言

首先,感谢一些同行们对上篇的肯定。

其次,文章标题为”大纲”,只是笔者,整理给自己的一个复习大纲。

SEO基础知识手册设计_地下室基础设计基础设计_seo兵书-搜索引擎优化手册

也许内容并不深入,因为文章的标题与定义就是大纲,并没指望一篇文章,可以教会提到的对应的知识点。无论哪个知识点,一个原型链最基础的东西,都可进行深挖,大神都可以扯上几万字,也未必能让所有人看懂,培训机构上万的学费,也未必敢说一句包你懂,何况笔者只是一个免费的大纲汇总呢?本文仅是大纲而已。大家哪个知识点不熟悉,应该学会自己查漏补缺,自己学习着去深入。

也许错别字,也许知识点有误,因为时间紧迫,精力有限,能力也有限,多多包涵,也欢迎您的指出,大家一起进步SEO基础知识手册设计

下篇,不像上篇,很多都是一个开放性的答案,也因个人时间原因,故只提供一个简介,或者第三方链接。

大纲

本章一共有两篇:

其中,该文为下篇,上篇链接为:juejin.im/post/686771…

三.巩固前端基建

本章重点,提供的知识点的归类,以及重点。具体的知识点不做多余的介绍。(如果对知识点不熟悉,建议重点突击补充一下。)

1)加深巩固篇1.前端去重的方法有哪些?

看过一篇文章,里边有十二种,可以参考:segmentfault.com/a/119000001…

但是内容感觉很多重复,以及有点为重复而重复。笔者简单提及一下自己脑袋里可行的去重方法(关键字思维,代码太多了暂不提供):

2.前端异步的方案有哪些?

1)Promise(可看上篇的解释)2)generator(可看上篇的解释)3)async/await4)事件发布/监听模式(可看后续的设计模式,属于发布订阅模式,代表作EventBus)

async 和 await 相比直接使用 Promise 来说,优势在于处理 then 的调用链,能够更清晰准确的写出代码。缺点在于滥用 await 可能会导致性能问题,因为 await 会阻塞代码,也许之后的异步代码并不依赖于前者,但仍然需要等待前者完成,导致代码失去了并发性。

3.前端网络请求有哪些?

ajax, fetch, axios。

一句简单的语句来概括的话,ajax因为不支持promise给淘汰,从而有了fetch,然后fetch缺陷多,不支持对异常捕捉,不支持监听进度条,cookies不友好等等。所以,axios当今浪潮。

有兴趣了解,推荐:juejin.im/post/684490…

地下室基础设计基础设计_SEO基础知识手册设计_seo兵书-搜索引擎优化手册

4.前端定时器有哪些?

异步编程当然少不了定时器了,常见的定时器函数有 setTimeout、setInterval、requestAnimationFrame。我们先来讲讲最常用的setTimeout,很多人认为 setTimeout 是延时多久,那就应该是多久后执行。其实这个观点是错误的,因为 JS 是单线程执行的,如果前面的代码影响了性能,就会导致 setTimeout 不会按期执行。当然了,我们可以通过代码去修正 setTimeout,从而使定时器相对准确

首先 requestAnimationFrame 自带函数节流功能,基本可以保证在 16.6 毫秒内只执行一次(不掉帧的情况下),并且该函数的延时效果是精确的,没有其他定时器时间不准的问题SEO基础知识手册设计,当然你也可以通过该函数来实现 setTimeout。

5.前端创建对象有哪几种方式?

该知识点只做汇总提示,不做具体分析。请各自查询资料查漏补缺。

function TestObj(name){

this.name = name;

}

5)原型创建

function TestObj(){}

Person.prototype.name = '小明';

};

6.前端的继承方式有哪些?

详细可参考:juejin.im/post/684490…

7.前端代码的复用有哪几种方式?

该知识点只做汇总提示,不做具体分析。请各自查询资料查漏补缺。

2)手写api

此部分,废话不多说,直接给对应的代码!如果还有其他重要手写代码,留言笔者会考虑补充。

1.new

SEO基础知识手册设计_地下室基础设计基础设计_seo兵书-搜索引擎优化手册

seo兵书-搜索引擎优化手册_地下室基础设计基础设计_SEO基础知识手册设计

2.apply/call/bind

地下室基础设计基础设计_seo兵书-搜索引擎优化手册_SEO基础知识手册设计

3.instanceOf

SEO基础知识手册设计_seo兵书-搜索引擎优化手册_地下室基础设计基础设计

4.获取url参数

seo兵书-搜索引擎优化手册_SEO基础知识手册设计_地下室基础设计基础设计

5.模拟深拷贝

简版看笔者代码,如需要深入建议:…

SEO基础知识手册设计_seo兵书-搜索引擎优化手册_地下室基础设计基础设计

6.防抖与节流

地下室基础设计基础设计_seo兵书-搜索引擎优化手册_SEO基础知识手册设计

7.手写迭代器next

SEO基础知识手册设计_seo兵书-搜索引擎优化手册_地下室基础设计基础设计

8.手写Object.freeze

地下室基础设计基础设计_seo兵书-搜索引擎优化手册_SEO基础知识手册设计

3)框架源码理解

源码是很多企业的考试重点,看不懂源码没关系,但是要明白源码大概是什么,大概的原理又是什么。此章节内容相对较多,笔者就不单独在本文解析。

笔者自身也处于探索或学习状态。如果你2到5年工作经验,想学习一下源码,可以参考一下笔者过去写的文章,那也是笔者的复习思路。

列的知识点,都是重点之重点。

如果你有一定的基础,或以及看过源码,或觉得网上还有更好的帖子,可以另从他处学习,不喜勿喷。(笔者也是学习中写下的源码,有不足或者理解错误的地方,多多包涵与讨论)

SEO基础知识手册设计_seo兵书-搜索引擎优化手册_地下室基础设计基础设计

1.vue源码

笔者mini版草文:juejin.im/post/684790…

2.react源码

笔者mini版草文:juejin.im/post/685457…

3.wepback源码

笔者mini版草文:juejin.im/post/685457…

4.vuex源码

笔者mini版草文:juejin.im/post/685705…

5.vue route源码

笔者mini版草文:juejin.im/post/686010…

6.diff源码

笔者mini版草文:juejin.im/post/686881…

7.promise源码

笔者mini版草文: juejin.im/post/686920…

8.react体系

react fiber,,react redux, react Hook等,笔者来不及学习或汇总,提供曾看到不错的文章:

React Fiber: juejin.im/post/685952…

React Hook:juejin.im/post/686774…

React redux: juejin.im/post/684490…

4)工具拓展篇1.babel

概念部分拷贝:juejin.im/post/684490…

Babel是一个工具链,主要用于将ECMAScript 2015+版本代码向后兼容 Javascript 语法,以便可以运行到旧版本浏览器或其他环境中。Babel 的三个主要处理步骤分别是: 解析(parse),转换(transform),生成(generate)。

2.nignx

非专业人员,不过前端人员还是必要掌握一下前端如何部署。

简单的普及一下nignx,Nginx可见简单理解成,所开发高性能的 Web和 反向代理 服务器。

明白nigix如何实现正向代理,如何实现反向代理,如何完成负载均衡。本文不做重点介绍,有兴趣请移步:juejin.im/post/684490…

3.csr与ssr

SSR(Server Side Rendering) :传统的渲染方式,由服务端把渲染的完整的页面吐给客户端。这样减少了一次客户端到服务端的一次http请求,加快相应速度,一般用于首屏的性能优化。

CSR(Client Side Rendering):是一种目前流行的渲染方式,它依赖的是运行在客户端的JS,用户首次发送请求只能得到小部分的指引性HTML代码。第二次请求将会请求更多包含HTML字符串的JS文件。

SSR优点:1)有利于SEO的优化2)首屏快

缺陷:1)性能全都依赖于服务器2)只能做静态,交互效果还是得用CSR,前端界面开发可操作性不高3)开发条件受限,生命周期等。

反之,CSR 不利于SEO,首屏慢,但是交互效果好。

4.web Worker

想了解的朋友们移步:juejin.im/post/684490…

四.编程相关

这里为”编程相关”,而不是”前端相关”,因为这是无论哪个客户端的开发人员都必须掌握的基础。废话不多说,本文列举以前端挂钩的知识点。

1)设计模式篇

设计模式更是一种思维。设计模式一共23种,分创建型,结构,行为型。本文举几个,前端用到的几个设计模式,且是简单的描述一下。

1.单例模式

一个极有可能重复出现的“实例”, 如果重复创建,是否消耗性能?如果借助第一次的实例,后续只是对该实例的重复使用,这样就达到了我们节省性能的目的。

SEO基础知识手册设计_seo兵书-搜索引擎优化手册_地下室基础设计基础设计

可能服务端的朋友,知道什么是数据库链接池,这就是一个单例的经典模式,数据库连接池,与每次创建数据库连接,效率值将差异巨大。这就是单例模式的魅力。

我们前端的实践中,也经常可以借鉴这个思维。例如,登录弹出框,取消重新弹出时,再显示原来的弹出框,而不是重新创建。

SEO基础知识手册设计_地下室基础设计基础设计_seo兵书-搜索引擎优化手册

2.工厂模式

这里严格来说有两类设计模式,一个叫简单工厂,一个抽象工厂。

简单工厂模式叫做静态工厂方法模式,是由一个工厂对象决定创建出哪一种产品类的实例。例如富士康同时需要生产华为,苹果等手机,我们可用一个工厂的模型,生产人只要输入型号,就可以产出对应的手机。

抽象工厂,多一个抽象对象。抽象工厂是工厂方法模式的核心,所有创建对象的工厂类都必须实现该接口。 如上栗子,如果还需要手机颜色,内存大小,共同来确定一步手机,这就是抽象工厂。抽象工厂,还需要使用户根据参数获得对应的类实例,避免了直接实例化类,降低了耦合性。

3.策略模式

简单点的理解,就是针对不同的状态,给出不同的算法或者结果。定义好策略组,根据不同的状态定义不同的策略。我们前端的实例,比如我们的form验证。他的优点:

4.责任链模式

用来处理相关事务责任的一条执行链。例如前端JS 中的事件冒泡,一层一层往上传递。优点:

5.观察者模式(Vue必懂)

发布订阅模式属于广义上的观察者模式。经过时间的沉淀,慢慢独立于观察者模式,成为另外一种不同的设计模式。

SEO基础知识手册设计_seo兵书-搜索引擎优化手册_地下室基础设计基础设计

这篇写得挺好的:blog.csdn.net/hf872914334…

Vue双向绑定的思维的设计模式,Vue玩家必须深入一下。

7.装饰器模式(React必懂)

装饰器模式(Decorator Pattern)允许向一个现有的对象添加新的功能,同时又不改变其结构。有点类似我们的相框与相片的关系。

React高阶组件的思维,React玩家必须深入一下。

2)网络协议篇

本人列举几个重点的点。建议直接tiantianUp的文章,写得比较适合观众(不像写得比较适合自己,自己看的都是写个要点去联想)。

本节内容参考:

您好!请登录

点击取消回复

    购物车

    X

    我的足迹

    X
    FUNION飞优免费测评网站质量:
    定制方案
    x

    力荐定制全网营销型网站已有10967548位客户定制营销型网站方案

    网站类型*
    建站目的*
    建站周期*
    行业类型*
    公司名称* 姓名* 手机号码*
    适合您的网站类型 ? 建站类型 ? 建站目的 ? 建站要求? 建站预算? 预期周期? 交付周期?
    我要定制

    飞优

    网站建设 | SEO优化 | SEM托管 | 信息流推广 | 口碑营销

    姓名
    邮箱
    手机
    留 言: