自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(54)
  • 收藏
  • 关注

原创 函数式编程入门

一、 面向过程编程、面向对象编程、函数式编程概要1.命令式编程:即过程式编程。强调怎么做。2.面向对象编程: 通过对一类事物的抽象,即class,其中对象是基本单元。常用的是继承方式。 平时会看到生命周期、链式调用。比如react中的类组件。3.函数式编程:即声明式编程。强调做什么。更加符合自然语言。常用的是组合的方式。平时看到的数据驱动(响应式编程)。比如react的函数组件+hooks。二、函数式编程特性1.纯函数:相同的输入,永远会得到相同的输出。即也就是数学函数。

2021-07-28 14:12:38 991

原创 理解JS异步

一、浏览器是多进程的,JS是单线程的二、进程、线程、协程解释:单个CUP,可能有多个进程,但是单个CPU只能运行一个进程;一个进程可能有多个线程,并且一个进程的资源是多个线程共享的;一个线程里面可能有多个协程,一个线程同时只能执行一个协程,如果这个协程需要等待某些条件才可以完成,可以停止当前协程,利用这段时间去做其他事情。所以简单的比喻就是:CUP(工厂)、进程(车间)、线程(工人)、协程(具体的事情)三、同步任务与异步任务同步任务:a执行完才能执行b。...

2021-07-28 14:09:40 292

原创 TS初体验2

一、TS是什么? TS是JS的超集,即是JS的一种静态类型检查工具。一、为什么要体验TS? 1. 使用TS则在编译阶段早发现一些错误使用,而JS是看看代码运行后会发生什么。 2.平时开发使用的第三方库(大多是结合TS开发的,比如ant-design)api如何使用可以快速查询。 3. 想在之后的项目中尝试引入。三、TS中的语法难点 infer:更灵活的类型推断装饰器:就当做一个函数 ,然后可以注释或修改类和类方法等。比如...

2021-07-28 14:02:17 5819

原创 git总汇

一、前提1、当我们使用git命令时,有的常会用到一些vi/vim操作。常用的如下: 命令 说明 ESC 退出输入模式,切换到命令模式 i、a、o 大小写 切换到输入模式 :q 退出程序 :w 保存文件 :wq 保存并退出 :wq! 强制保存后离开 Eg:我们输入一个交互式命令如下2、Git参数,常用参数说明如下: git参数 ...

2021-07-28 13:50:52 157

原创 TS语法初体验

1. 导入导出2. 类3. 多继承参考多继承例子4. keyof 索引类型5. infer 类型推断6. extends 条件判断7.数组泛型8. 类型声明9. 索引签名10.void ,never, unknown11.函数重载12. 泛型约束extends13. Generic Function 泛型函数14.定义构造函数15. 函数...

2021-07-17 18:22:43 396

原创 谈谈对闭包的理解

/**1. 闭包是什么?a. 某一个函数可以记住并在所在的词法作用域(父函数)外部访问所在的词法作用域(父函数)时,就产生了闭包。b. 所以在以上情况满足的条件下,对所在的词法作用域的引用,这个引用就是闭包。而这个引用是一个函数,这个函数包含了(父函数)的变量。简单的说。所以 闭包是 一种引用。 闭包函数: 就是被引用的能记住所在的词法作用域的函数。*//**2. 下面我们将闭包的概念进行图形化(那就是代码)理解,让我想起了:taik is cheap, show ..

2021-06-21 02:15:32 541 1

原创 如何将var str = “[[[0,32],[3,2],[2,1]]]“;转为数组arr=[[[0,32],[3,2],[2,1]]]?

问题1:如何将var str = "[[[0,32],[3,2],[2,1]]]";转为数组arr=[[[0,32],[3,2],[2,1]]];问题1.1:为什么可以JSON.parse()呢? ---JSON对象是?0.JSON对象是什么?1. 为什么字符串false转成"\"false\"" ?2.如果参数对象有自定义的toJSON()方法,那么JSON.stringify()会使用这个方法的返回值作为参数,而忽略原对象的其他属性。3. JSON对象不能是函数,..

2021-06-12 16:54:08 131

原创 对象

1、什么是全局对象? 2. 什么是应用级对象? 是否挂掉:node服务器单个进程最大1400M,需要重启App应用 3. 什么是session? 在说session是啥之前,我们先来说说为什么会出现session会话,它出现的机理是什么?我们知道,我们用浏览器打开一个网页,用到的是HTTP协议,学过计算机的应该都知道这个协议,它是无状态的,什么是无状态呢?就是说这一次请求和上一次请求是没有任何关系的,互不认识的,没有关联的。但是这种无状态的的好处是快速。 ...

2021-05-19 15:19:56 127

原创 原生表单到UI库封装的表单

一、初识表单表单:用来收集用户提交的数据,发送到服务器。提交形式: key1=value1&key2=value2 ,浏览器自动完成提交方式:submit控件:<input type="submit" value="提交">Enter键: 在 input 字段中按下Enter 键button元素:<button>提交</button>,默认有type="submit"表单元素脚本提交:formElement.submit();阻止提交:

2020-10-17 21:16:25 182

原创 从原型继承到类继承详解

从原型继承到类继承详解构造函数的产生new 命令的原理this的产生注意点1注意点2Function.prototype.bind()原型链构造函数的继承类取值函数(getter)和存值函数(setter)类继承判断一个类是否继承了另一个类super 关键字子类的`__proto__` 和子类的`prototype`实例的`__proto__`拓展构造函数的产生对象是一个容器,封装了属性(property)和方法(method)生成对象,需要一个模板.JavaScript 语言使用构造函

2020-10-09 08:11:37 193

原创 ES6中的常用异步对象和函数

1.promise对象// promise对象const promise=new Promise((resolve,reject)=>{ console.log(1); resolve(); console.log(2);})promise.then(()=>{ console.log(3);})console.log(4);//打印的结果:1,2,4,3const promise=Promise.resolve(1).then(2).then

2020-06-04 23:44:23 229

原创 模块化的发展

1.无模块化的时代2.初步解决无模块化的bug3.Common.JS 模块化时代4.Require.js模块化时代(AMD)5.Sea.js模块化时代(CMD)6.ES6 module模块化时代怎么用、优点、缺点、如何做下一步改进、使用的环境、区别、服务器的如何在浏览器使用、浏览器的如何在服务器使用、如何两者都兼容。后序待补充.........

2020-01-02 00:24:14 265

原创 Q19. arguments调用函数this被你忽略了吗?

首先,看看这道题的结果是什么?var length = 10;function fn(){ console.log(this) console.log(this.length);}var obj = { length: 5, method: function (fn1) { arguments[0](); }};o...

2019-12-21 21:07:06 200

原创 Q18.图片懒加载实现的三种方法

js实现图片懒加载一、 核心思想二、具体实现1.创建要懒加载的元素并设置默认加载图片2.页面解析完加载元素3.懒加载方法(1)使用offsetTop - scrollTop < clientHeight;==优化使用节流==(2)使用getBoundingClientRect();==优化使用节流==(3)使用IntersectionObserver API ,==不需要使用节流==三、节...

2019-11-26 16:09:51 350

原创 Q17.你真的理解apply吗?

人们常说,要学好js,多尝试自己实现一些polyfill。但是呢,一般人会去先使用它,然后才去手撕它。我们今天并不想说手撕的问题,因为我觉得我还没有使用好它,你呢?不妨看看下面怎么说的。1.我们都知道apply可以改变this指向的问题2.我们还知道apply接受的第二个参数是一个数组,是一个数组。3.甚至知道apply和call都是改变this指向的,而区别就是call的...

2019-11-16 00:16:51 179

原创 细说事件流

相信大家对事件流有一点的认识,在这里我就通过一个例子来说明其中的细节。这是你知道的不知道的,不知道的知道的,笑死。一、事件阶段: 捕获阶段 目标阶段冒泡阶段二、案例分析1.html部分<div id='wrapDiv'>wrapDiv <p id="innerP">innerP <span id...

2019-11-13 17:47:49 206

原创 Q16.如何对JS打断点调试代码?

一开始学习的时候,基本都是console.log(),并且甚至觉得有它就够了,也不想尝试新的调试方法,觉得学习其他调试技巧成本高哈哈哈。有一天做梦了,梦是这样的。。。 1.在哪儿打断点?哪里需要点哪里,可以打多个哦。相当于debugger。 2.如何调试?按照需要看是单步或单函数 3.调试要看什么?看变量值是否符合预期,看调用函数间的关系(调用栈(栈下...

2019-11-09 13:51:56 197

原创 Q15.你了解DOMContentLoaded吗?

预备备~~~1.document.readyState属性描述文档的加载状态。一个文档的readyState可以是以下之一:(1)loading / 正在加载 文档(document)仍在加载。(2)interactive / 可交互 文档(document)已被解析,"正在加载"状态结束,但是诸如图像,样式表和框架之类的子资源仍在加载。表示DOMC...

2019-11-06 21:32:56 434

原创 Q14.你同时撞见NodeList对象和HTMLCollection对象了吗?

举例来区别两者:html代码: <div id="box"> <span></span> <a href=""></a> </div> <div name='box2'> <span></span> ...

2019-11-05 23:19:10 195

原创 Q13.GIS中Dijkstra(迪杰斯特拉)算法如何实现?(JavaScript版本有向图)

❤❤❤❤❤烧脑的一句话:若从点S到点T有一条最短路径,则该路径上的任何点到S的距离都是最短的。啥?!?!?题目要求:实现要点:邻接矩阵+贪心算法(分解找最优解)+回溯法实现简单说明:从起点出发,找到其直接相连的结点距离,然后一步一步向远处延伸。实现详细说明:先是初始化。然后从起点V1出发,找到其直接相连的结点距离,比如V1相连的是V2,V4,V5。写入dis对应下标数组。并更新...

2019-11-04 17:51:14 580

原创 Q12.控制台的红色物质是什么?

1.当你输入不明物质,比如英文括号写成中文括号等。//报错Uncaught SyntaxError: Invalid or unexpected token//翻译未捕获的SyntaxError:无效或意外的令牌

2019-11-02 23:10:04 164

原创 Q11.小小正则匹配?

首先,有人可能觉得正则学了就忘了,有人觉得学的时候再查,如何更加方便的学习推荐一个小的工具配合文档一起学https://regexper.com/1.匹配非数字var reg=/\D/g;var a='123';a.replace(reg, "我"); //"123"var reg=/\D/g;var a='123.2';a.replace(reg, "我"); ...

2019-11-01 22:19:25 208

原创 Q10.‘bash’命令无法识别怎么办?

记录一次使用命令的操作:事情是这样的......当我运行要一个文件deploy.sh时,可以在其所在文件夹下打开git Bash。并且输入bash deploy.sh其实还有一种方法 便是在package.json文件里输入脚本"scripts": { "d": "bash deploy.sh" },并在vscode终端自带终端运行 :npm run ...

2019-11-01 20:12:23 3487

原创 Q9.git push之后node_modules到远程如何删除?

怎么将node_modules都push到远程仓库了接下来要做的是:如何删除远程的node_modules1.先在.gitignore文件上编写一下代码node_modules/2.执行以下命令删除git rm -r --cached .3.提交修改的文件就行...

2019-10-31 22:52:06 591

原创 Q8.你的map和reduce长啥样子?

哦,节日快乐。一.myMap详解1.map的实现 let arr = [3, 2, 5, 8, 9, 4]; // arr.map((item, index, items) => console.log(item, index, items)); // arr.map((item, index, items) => it...

2019-10-24 15:23:15 147

原创 Q7.setInterval()有哪些有趣的故事?

接着上次被问到的,如何用setTimeout实现setinterval,开始.....1.如何实现?用递归 var i = 0; function mySetInterval(callback, time) { if (typeof callback !== "function"){ throw new ...

2019-10-23 19:52:49 167

原创 Q6.Object.create()被你逮到了吗?

1.概念:Object.create()方法创建一个新对象,使用现有的对象(比如参数是Object.prototype)来提供新创建的对象的__proto__(比如就是var obj=Obejct.create(Object.prototype)),就是知道obj.__proto__为Object.prototype。所以说,obj就有Object.prototype的属性和方法,还有Obje...

2019-10-20 16:55:28 189

原创 Q5.如何找到源码的入口?

想必大家都觉得阅读源码的人很厉害,但是你开始了吗?不懂,能看吗?告诉你一个小技巧吧,找到入口文件,就不用那么迷了。如何找入口文件?对于单文件, 基本找到最外层一个立即执行函数--然后找到return出去的东西哦;对于模块化:1.入口文件就是index.js 2.如果外面看不到index.js,那就是在package.json文件里面找bin :bin/index.js ,然后根...

2019-10-17 21:39:09 495

原创 Q4.回调函数中的this?

this指向的解释你可能知道了,但是当在某些场景下还是会误导你的,比如回调函数中的this。不信看看下面的例子:var a = { statusArr: [], on: function (state) { this.statusArr.push(state); return a; }, fire() { /...

2019-10-13 01:04:40 239

原创 Q3.看看 toString() 和 valueOf() 到底怎么回事?

前奏 看看 ==N表示ToNumber操作,即将操作数转为数字。P表示ToPrimitive操作,即将操作数转为原始类型的值(Undefined、Null、Boolean、Number和String等五种) undefined == null,结果是true。且它俩与所有其他值比较的结果都是false。 String == Boolean,需要两个操作数同时转为Numb...

2019-10-10 20:44:17 177 1

原创 Q2.git报错:Connection reset by 52.74.223.119 port 22 怎么解决?

1.git add ,git commit 正常 ,git push origin master 就报错如下:Connection reset by 13.250.177.223 port 22 甚至Authentication failed.2.报错原因:网太差啦3.解决办法:换成自己热点或者在网速好的情况下push就可以了,重新 git push origin master...

2019-10-10 16:22:54 2609

原创 Q1.意想不到 git push -u origin master 会报错

一天,有勇气的想使用github新建项目,结果不顺畅,还好解决了报错如下:$ git push origin masterTo github.com:smartBBer/LeetCode.git ! [rejected] master -> master (fetch first)error: failed to push some refs to 'git@g...

2019-10-08 17:29:06 144

原创 Q7:难道不想手工搞个环境?

一.有的参考1.webpack中文网:https://www.webpackjs.com/concepts/wepack是什么?(提供浏览器使用,那浏览器能运行什么,不能运行什么)2.搭建vue:https://juejin.im/post/5cc55c336fb9a032086dd7013.Vue CLI:https://cli.vuejs.org/zh/4.npm:http...

2019-09-16 22:24:19 18041

原创 Q6:问题出在什么地方?

曾经的;以前的;最近的;现在的;给自己留个纪念了。1.elementUI(1)鼠标悬浮文字提示------el-tooltip组件// 第1:el-tooltip要和i标签配合<el-tooltip effect="dark" placement="bottom"> <div slot="content"> //第2:本来el-to...

2019-09-16 09:58:01 458

原创 Q5:ES6如何实现二叉搜索树的基本操作?

/** * ES6版本 */// 搜索效率高let Tree = (() => { // 私有变量 let root = null; // 辅助类 class Node { constructor(element) { this.value = element; this.left ...

2019-09-03 10:45:17 150

原创 Q4:站在高中生的角度如何计算时间复杂度?

一、算法复杂度是什么?算法复杂度分为时间复杂度和空间复杂度。时间复杂度是指执行算法所需要的计算量(一段代码执行的次数多少透露出消耗的时间);空间复杂度是指执行这个算法所需要的内存空间(一个算法在运行过程中临时占用存储空间大小的量度)。直接插入排序的空间复杂度是O(1) 。而一般的递归算法就要有O(n)的空间复杂度了,因为每次递归都要存储返回信息。...

2019-08-10 17:10:09 238

原创 Q3:Linux命令要会哪些?

通俗的说几个基础概念:终端(Terminal):就是我们打开的一个个"小黑框"。命令行解释器(Shell):在终端里面「输入命令,得到结果」的交互程序。再通俗一点,就是用户和操作系统的之间的接口。那就是为用户提供使用操作系统的入口啦。shell有哪些:比如cmd,powershell,bash,IDE的终端等简单的说几个Linux命令: 如何在Windows终端使用...

2019-08-08 12:02:04 315 1

原创 Q2:利用Vue CLI 3.x如何构建项目?(针对windows)

具体安装请看官网。以下是简单的走个流程-----------------------------------------------------“code如此多骄,引无数coder竞折腰”一.准备工作 1.git下载并安装,官网链接:https://gitforwindows.org/;也就是我们用的git bash.(可以当cmd使用,也就git命令;也遵循Linux命令) ...

2019-07-20 20:16:32 262 4

原创 Q1:函数表达式理解了吗

1.先来看看这个问题,结果和你心中的答案一样吗?No,Go on!var a = function b() {}console.log(typeof a) //functionconsole.log(typeof b) //undefinedconsole.log(typeof b()) //Uncaught ReferenceError: b is not defined...

2019-06-30 18:35:52 217

原创 从可视区宽高谈起

how 获取可视区宽高的问题,而引起的一阵‘风波’~~~

2019-05-30 21:16:26 154

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除