4 bigname22

尚未进行身份认证

我要认证

很帅,很酷...

等级
TA的排名 3w+

优雅实现深度遍历DFS与广度遍历BFS

深度遍历DFS&广度遍历BFS定义深度遍历DFS:深度优先搜索属于图算法的一种,英文缩写为DFS即Depth First Search.其过程简要来说是对每一个可能的分支路径深入到不能再深入为止。广度遍历BFS:广度遍历是最简便的图的搜索算法之一,以广度优先,横向逐层地遍历,直到没有下一层为止。实现方式数据源:搜索其中的name值 const data = [ { name: 'a', chi...

2020-10-19 18:22:31

优雅实现防抖与节流函数

防抖&节流定义防抖:防抖是指在一定的时间内再次触发此事件,会清空上次的事件重新开始,如果制定的时间内没有再次触发,那么这个事件才会执行。节流:节流是指在一定的时间同一事件只会触发一次,只有超过了这个时间才会再次触发。使用场景搜索框按钮监听滚动频繁使用鼠标总的来说:任何东西被频繁的调用都有可能需要防抖或者节流去优化实现方式防抖 function showLog() { console.log('show'); } /...

2020-10-18 19:30:57

终极版~深拷贝

这次让面试官非常满意:手撕深拷贝-------------人工分割线-------------浅拷贝这里不做介绍了,深拷贝的实现要点,除了一定要深!还要能兼容各种类型,如函数,正则、Date等等。其实日常业务开发中,Json.parse(Json.stringfy(obj))已经能够解决90%左右的克隆需求。还有Object.assign() Object.create()都能满足一定的克隆需求。但上班拧螺丝,面试造航母的精神不容小觑!本着专研精神去看待怎么才能写个牛逼、各种场合都能...

2020-10-17 02:55:12

Javascript判断数据类型的五种方式及其特殊性

Javascript判断数据类型的X种方式及区别五种方式typeofinstanceofObject.prototype.toStringisArrayiisNaN-------------人工分割线-------------typeofMDN:typeof操作符返回一个字符串,表示未经计算的操作数的类型。 let data = { number : 1, string : 'b', boolean : true, ...

2020-10-15 03:25:08

汇总遍历对象的六种方式及其区别~值得收藏

遍历对象属性的方式先定义数据源 let person = { name: 'tony', } let human = { eat: 'food', } // 设置prototype为human Object.setPrototypeOf(person, human); // person增加属性:不可枚举 age Object.defineProperty(person, "age", {

2020-10-14 19:56:44

你不知道的闭包原理【三个栗子彻底理解】

你不知道的闭包原理想要理解闭包之前,就必须理解函数的创建过程、活动变量AO、作用域链。我曾写过相关的文章网上相关对闭包的定义:MDN:函数和对其周围状态(lexical environment,词法环境)的引用捆绑在一起构成闭包(closure)。也就是说,闭包可以让你从内部函数访问外部函数作用域。在 JavaScript 中,每当函数被创建,就会在函数生成时生成闭包。你不知道的JavaScript:是指有权访问另外一个函数作用域中的变量的函数。创建闭包的常见方式就是在一个函数内部...

2020-10-13 03:52:47

javascript-七个栗子深入理解this指向

在先了解this之前有必要了解一下-函数的生命周期在调用一个函数的时候是先经历函数的创建然后再到执行的过程。而this的指向是再创建阶段就已经完成了。关于创建及执行的阶段做的事情看下面图图:执行上下文生命周期描述创建上下文分别创建变量对象,确认作用域链,以及确定this指向执行创建阶段之后,则执行代码,这个时候会完成变量赋值,函数引用,及其他代码在创建函数的时候就确定this及作用域这些操作【对应上js是一门词法分析这个知识点是相互呼应的】,意思就是this在创建阶

2020-10-10 04:10:10

JavaScript设计模式之命令模式【命令解耦】

在讲解命令模式之前我们先来了解一个生活中的命令模式场景:场景1:医院看病抓药:当你因为肾虚到医院看医生,医生一番操作之后得出结论:要吃个疗程【夏桑菊】、【小柴胡】(药名纯属虚构,真的肾虚就找医生),于是医生开了个药单【夏桑菊、小柴胡】,让你拿着药单到收费窗口;于是射射发抖的到收费窗口把药单【夏桑菊、小柴胡】给到收费人员,收费人员不管给你看医生的是谁,你是否得肾虚,他只要对着药单得收费项进行收费,完成后在药单上盖个收费章,然后让你拿着药单到取药窗口拿药,于是你又跑到取药窗口,将药单【夏桑菊、小柴胡】给到

2020-08-19 19:41:02

JavaScript设计模式之策略模式【组合委托】

前言:语言只是工具,思想才是核心今天要总结的是 策略模式策略在开发中的应用非常广泛,所以也是非常常见且使用的设计模式。在实际开发中,往往在实现一个功能时,有多种解决方案可行。常见场景:解压:gzip算法解压,gzip算法解压表单验证:手机号验证,邮箱验证,密码格式验证工资计算:技术猛男工资,鼓励师妹妹工资,冷血产品经理工资总结策略模式的使用场景,在想实现某个效果时,有多种不同的达成方式。这个时候就要考虑策略模式(如果你写了很多ifelse)使用策略模式的优点:1.使代码更加.

2020-08-12 21:02:51

JavaScript设计模式之单例模式【惰性单例】

在提高开发水平,往中高级前端工程师中,利用设计模式是必不可少的一条道路。掌握设计模式的思想远远比硬套重要,因为设计模式是一种思想,不局限于开发语言。但实际上由于语言的特性不同,往往在实现的时候会有不少差异。《javascript设计模式文章系列》是参照《JavaScript设计模式与开发事件》以及网络博客结合自身经验总结所写,希望在写下文章分享知识的同时能够加深记忆。javascript设计模式之单例模式如果你学过Java那么你会想到先定义单例类,然后提供getInstance静态方法返回单例对象.

2020-08-11 18:41:03

JavaScript继承方式及原理

继上篇文章深入剖析prototype、constructor、_proto_原理后,接下来整理、理解JS中的继承就水到渠成,一气呵成!话不多说,上个文章中说过,原型链最主要就是为了解决JS在面向对象中继承功能的实现。所以在js继承中第一种要介绍的方式当然是从原型链继承。过程中会插入我对该种继承产生过的一些疑惑并作出解答,希望这对你的理解能带来帮助原型链继承: function Father () { this.name = 'father'; } .

2020-08-04 02:35:03

深入剖析prototype、constructor、_proto_原理

JavaScript中比较难理解的点之【prototype、_ _ proto _ _、constructor】,通常不明白这三者关系的同学都有个毛病:继承也不懂!深刻理解这个知识点不仅可以对学习继承有帮助,而且对new关键字、this、性能方面都会有更好的认识。最关键是,几乎作为面试必考题目之前,没啥理由不好好看完~友情提示:文章相对枯燥且绕,一定要耐心。这篇文章会尽量按照我这段时间所产生过的疑惑,以懵逼当事人之一的角度去一一解开谜底。在这个复杂三角恋的关系中,我认为最让人容易混淆的有如下几个点:

2020-07-29 18:28:33

前端进阶必读:《JavaScript核心技术开发解密》核心提炼三

前言最近读勒基本关于前端的数据《JavaScript核心技术开发解密》,《webpack从入门到进阶》…这几本书帮助到我更好的理解JS、webpack在前端技术领域中的作用。以前可能更多的是知道怎么使用,但从未从更深的层面去思考他们是如何运作,为什么会产生这种特性,等等…这本书先从《JavaScript核心技术开发解密》开始讲解,分为两篇讲完,读完本篇你能学到:《核心提炼三》前言九、ES6与模块化9.1 常用语法知识9.2 模板字符串9.3 解析结构9.4 展开运算符9.5 Promise9.6 事件

2020-07-21 16:50:09

前端进阶必读:《JavaScript核心技术开发解密》核心提炼二

前言最近读勒基本关于前端的数据《JavaScript核心技术开发解密》,《webpack从入门到进阶》…这几本书帮助到我更好的理解JS、webpack在前端技术领域中的作用。以前可能更多的是知道怎么使用,但从未从更深的层面去思考他们是如何运作,为什么会产生这种特性,等等…这本书先从《JavaScript核心技术开发解密》开始讲解,分为两篇讲完,读完本篇你能学到:五、作用域与作用域链在JS中,作用域是用来规定变量/函数可访问的规则5.1作用域5.1.1全局作用域在非严格模式,未定义的变量/函数会

2020-07-21 16:49:34

前端进阶必读:《JavaScript核心技术开发解密》核心提炼一

前言最近读勒基本关于前端的数据《JavaScript核心技术开发解密》,《webpack从入门到进阶》…这几本书帮助到我更好的理解JS、webpack在前端技术领域中的作用。以前可能更多的是知道怎么使用,但从未从更深的层面去思考他们是如何运作,为什么会产生这种特性,等等…这本书先从《JavaScript核心技术开发解密》开始讲解,读完这本书你能学到:一、三种基础数据结构栈(stack)堆(heap)队列(queue)不要小看这些数据结构,他们不同的结构以及规则产生了我们平常所知道的一些特性:

2020-07-21 09:05:35

Axure9发布后无法正常打开的解决方法

最近用的Axure9画图比较多,一开始就遇到发布之后自动跳转到购买页面。然后把这个问题解决之后,又发现右侧的原型内容不可见。最后把这个问题解决了就出现过了。这里记录下这个问题,希望帮到其他人。1.resources\scripts\player\axplayer.js找到这一块删除掉【好像Axrue7/8只要这一步就能正常使用了】 if (CHROME_5_LOCAL &&...

2020-03-17 09:23:49

JavaScript高性能编写技巧

前言这段时间把《高性能JavaScript》书籍读完,受益良多。在读书的过程把重点精简地提炼并结合自己的经验记录下来。也希望看完这篇文章能够给对JavaScript多了解一点点。目录加载和执行数据存取DOM编程算法和流程控制快速响应的用户界面Ajax编程实战构建并部署高性能的JavaScript应用1. 加载和执行了解: 当浏览器在执行JavaScript代码时,是不能...

2019-10-13 03:16:10

微信端字体图标显示不正常(不显示/显示成方框)

微信端字体图标显示不正常(不现实/显示成方框)一开始的思考方向发现错误的原因出错的原理解決方案iOS 中微信端打开项目发现图标显示成一个个方框;切换页面也同样没显示。但是在Android端、IOS的浏览器显示正常【借用下网上的效果】一开始的思考方向一开始怀疑是字体图标的导入出错了,所以重新导入,但是仍然没解决。因为网上也很多说字体图标文件导入顺序等等问题影响。但这并没有解决我的问题。发...

2019-10-10 17:22:48

小程序WebView调用JSSDK(使用扫一扫功能)采坑记录

小程序WebView调用JSSDK(使用扫一扫功能)如何使用JSSDK一: 我开发的是小程序,哪里来的公众号设置?二: 引入的JS文件(http://res.wx.qq.com/open/js/jwexin-1.4.0.js)报错? ![在这里插入图片描述](https://img-blog.csdnimg.cn/20190731190417577.png)三: 获得签名(权限验证)?最近项目仲...

2019-07-31 19:21:01

Vue集成微信支付发生的支付失败(当前页面的URL未注册)

微信支付失败:当前页面的URL未注册https://www.xxx.com/iPay/index.html#/inputPay这是因为微信会做一个验证,在后台配置的支付路径与当前的路径不相等导致的。所以,亲测可用的解决办法在# 前面加一个? 号https://www.xxx.com/iPay/index.html?#/inputPay在这里小小的记录一下,希望帮到有用的人。...

2019-07-25 22:03:57

查看更多

勋章 我的勋章
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv2
    勤写标兵Lv2
    授予每个自然周发布4篇到6篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。