- 博客(25)
- 资源 (4)
- 问答 (1)
- 收藏
- 关注

原创 一步步带你搞一个微前端框架--基于single-spa
原文地址 微前端是我参加工作不久,一个同事大佬在公司尝试推行的,本人有幸参与其中。在微前端的概念出现之前,微服务就已经出现并且大火,而微前端就是借鉴了微服务的架构而产生的,他们很相似,我们可以对比着理解。微服务微前端一个微服务就是由一组接口构成,接口地址一般是 URL。当微服务收到一个接口的请求时,会进行路由找到相应的逻辑,输出响应内容。后端微服务会有一个网关,作为单一入...
2020-03-27 10:41:34
5469
1
原创 一步步教你完成一个自己的脚手架并且发布到npm
相信你一定用过vue-cli或者create-react-app或者你公司自己的脚手架。当我第一次用这些脚手架的时候,会觉得这一定是种很高级的玩意,其实了解过之后就发现,脚手架也并不是多么深奥的东西。怎么做一个脚手架呢?接下来我会一步步的教你如何完成一个自己的脚手架(源码:https://github.com/hui-fly/rv-cli,记得star哦)1. 预备知识本次教大家实现一个基础...
2020-03-27 10:54:13
1995
原创 一步步教你完成一个自己的脚手架并且发布到npm
原文地址 相信你一定用过vue-cli或者create-react-app或者你公司自己的脚手架。当我第一次用这些脚手架的时候,会觉得这一定是种很高级的玩意,其实了解过之后就发现,脚手架也并不是多么深奥的东西。怎么做一个脚手架呢?接下来我会一步步的教你如何完成一个自己的脚手架(源码:https://github.com/hui-fly/rv-cli,记得star哦...
2020-03-27 10:49:30
1374
原创 你不知道的Chrome
这篇博客不好写,直接上几个链接,都是有图有真相的好文关于console面板:https://zhuanlan.zhihu.com/p/29879682 看了才知道原来不止console.log()关于Chrome的Timeing : https://blog.youkuaiyun.com/itpinpai/article/details/52574385 Timing在network中,...
2018-08-29 20:13:00
258
原创 二进制中1的个数
输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。将负数用补码表示的操作:负数的逻辑右移0位得到其补码(如-1的补码为32个1) function NumberOf1(n){ if(n<0){ n=n>>>0; } var str=n.toString(2) var count=0; for(va...
2018-08-28 23:54:00
344
原创 重建二叉树(基于js)
输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。一棵树的根节点可以就是这棵树前序遍历的第一个节点,没毛病吧!在中序遍历得到的序列中找到该节点,它左边的序列就是该节点的左子树,右序列就是该节点的右子树...
2018-08-28 23:11:00
224
原创 从尾到头打印链表(基于js)
输入一个链表,按链表值从尾到头的顺序返回一个ArrayList。首先你得知道什么是链表,可以参考把当前的Node的val值用 unshift 方法放进数组,然后指针后移,循环该步骤直到链表尾function printListFromTailToHead(head){ let arr = []; while(head!=null){ arr.unshif...
2018-08-28 22:26:00
384
原创 替换空格(基于js)
请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。有时候js就是这么简单;这个问题用java 实现的话有点小麻烦,但是js只要一行代码function replaceSpace(str){ return str.split(' ').join('%20')}...
2018-08-28 22:19:00
638
原创 二维数组的查找(基于js)
题目:在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。解答:最简单粗暴的方式就是遍历整个二维数组,其算法复杂度为O(n^2),但是有更好的方式:从左下角(或者右上角)开始遍历数组,如果当前的元素大于target,则说明目标元素在当前元素的...
2018-08-28 22:09:00
1012
原创 关于document对象
之前讲到DOM操作时,很多DOM操作的方法都来源于一个叫做document的对象,当然这个对象不只是提供DOM操作的API这里贴一张菜鸟教程提供的表格,HTML文档中可以使用以下属性和方法:属性 / 方法描述document.activeElement返回当前获取焦点元素document.addEventListener()向文档添加句柄...
2018-08-13 15:11:00
143
原创 js之DOM操作总结
1.什么是DOM,简单的说,DOM是一套对文档的内容进行抽象和概念化的方法。------------------《JavaScript DOM编程艺术》D:document,即文档O:object,即对象M:model,即模型DOM把一份文档表示为一棵树,或者更具体来说就是一颗家谱树,这棵树由各种类型的节点构成。DOM节点可以分成三种:元素节点,文本节点,属性节点。所以DOM...
2018-08-12 21:54:00
227
原创 关于js中的数组
数组、字符串、数字是一个程序的最基本的组成部分,对于程序员来说,理解他们只是基本操作,今天说说数组和其他强类型语言不同,数组可以容纳任何类型的值,字符串、数字、对象,也可以是其他数组(多维数组就是这样用的),并且js的数组可以像对象一样任意拓展(事实上数组就是对象)而不像其他强类型语言一样需要预设长度。 声明数组的方式:1、var a=[1,2,'b']2、var a = ne...
2018-08-12 00:26:00
214
原创 关于闭包
---恢复内容开始---什么是闭包?一句话解释就是:当函数可以记住并访问所在的词法作用域,即使函数是在当前此法作用域之外执行,这是就产生了闭包。----------《你不知道的JavaScript》请看下面一个例子:var fn;var a =1;function foo(){ var a = 2; function baz(){ console.l...
2018-08-11 15:20:00
163
原创 CSS之居中方法总结
今天复习了一下关于居中的几种方式(1)水平居中:给div设置一个宽度,然后添加margin:0 auto属性div { width: 200px; margin: 0 auto;}(2)让绝对定位的div居中div { position: absolute; width: 300px; height: 300px; margin: auto; top...
2018-08-10 15:50:00
140
原创 关于js中的this
从字面上理解this就是本身,所以this的指向就是本身,关键就是搞清楚本身指的是什么。首先这个本身不是指函数本身,也不是指函数的词法作用域。this是在函数调用时发生的绑定,它的指向完全取决于函数是如何调用的。当一个函数被调用时,就会创建一个活动记录(或者说是执行上下文),这个记录会包含函数在哪里调用、函数的调用方式(接下来会讲到)、传入的参数等信息,而this就是这个记录的一个属性。...
2018-07-24 14:35:48
305
1
原创 ES6的Set类是怎么实现的(集合)
Set类就是数据结构中的集合Set类的基本操作的实现:function Set(){ var items = {} var length = 0; //判断元素是否存在 this.has = function(val){ return items.hasOwnP...
2018-07-19 17:37:19
2093
原创 ES6的Set类是怎么实现的(集合)
Set类就是数据结构中的集合Set类的基本操作的实现:function Set(){ var items = {} var length = 0; //判断元素是否存在 this.has = function(val){ ...
2018-07-19 17:37:00
707
原创 算法:变态跳台阶的js的实现
题目描述1.一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法?也许这个题你没见过,但是下边这个你应该知道:2.一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。关于第二道题其实就是斐波那契数列:青蛙的第一跳有两种...
2018-07-19 14:39:00
621
原创 算法:变态跳台阶的js的实现
题目描述1.一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法?也许这个题你没见过,但是下边这个你应该知道:2.一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。关于第二道题其实就是斐波那契数列:青蛙的第一跳有两种情况,跳一阶和跳二阶。如果跳一阶,则剩下n-...
2018-07-19 14:38:34
850
原创 用js实现链表
链表骨架function LinkedList(){ var Node = function(element){ this.element = element; this.next = null; } var length = 0; var head = n...
2018-07-19 10:36:00
128
原创 用js实现链表
链表骨架function LinkedList(){ var Node = function(element){ this.element = element; this.next = null; } var length = 0; var head = null; var tail...
2018-07-19 10:35:55
927
原创 你不知道的JavaScript之理解作用域(1)
理解作用域对于语句 var a = 2;编译过程分两步:一是完成变量的声明,如果同一作用域下已经有了该声明,编译器会忽略;二是为js引擎的执行生成代码;编译之后生成了可执行的代码,接下来由引擎来执行;此时引擎会做两件事情,一是LSH查询,二是RSH查询;"L"和"R"分别指左和右,但是本质上LSH指的是对变量声明的查询或者说为2找了一个容器,而RSH指的是对变量的值的查询;对于以下语句:funct...
2018-07-06 18:35:23
152
原创 你不知道的JavaScript之理解作用域(2)
在上一篇博客https://blog.youkuaiyun.com/qq_37216615/article/details/80891480 中介绍了什么是LHS和RHS,你可能会疑惑知道他两有什么用呢?结合对LHS和RHS的理解,考虑如下代码:function(a){ console.log(a+b); b=a;}foo(2);在执行log(a+b)时,引擎会对a和b分别做一次RHS查询,作用域...
2018-07-06 18:34:08
137
原创 你不知道的JavaScript之词法作用域
词法作用域总结一下作用域的定义:作用域就是一套规则,这套规则用于引擎如何进行查找变量以及在哪找到变量(可以看看之前我博客写的引擎和作用域之间的对话)。作用域分为词法作用域(也叫静态作用域)和动态作用域,大多数语言采用的都是词法作用域,当然包括js。此法作用域最重要的特征就是它的定义过程发生在代码的书写阶段而不是运行阶段。接下来看个例子对比一下静态和动态就好理解了:考虑以下代码在静态作用于下和动态作...
2018-07-06 18:32:22
152
原创 你不知道的JavaScript之词法作用域
词法作用域总结一下作用域的定义:作用域就是一套规则,这套规则用于引擎如何进行查找变量以及在哪找到变量(可以看看之前我博客写的引擎和作用域之间的对话)。作用域分为词法作用域(也叫静态作用域)和动态作用域,大多数语言采用的都是词法作用域,当然包括js。此法作用域最重要的特征就是它的定义过程发生在代码的书写阶段而不是运行阶段。接下来看个例子对比一下静态和动态就...
2018-07-06 18:32:00
108
JavaScript作用域和传参的问题
2018-07-06
TA创建的收藏夹 TA关注的收藏夹
TA关注的人