自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

杨前露的博客

你不优秀,认识谁都没用!

  • 博客(63)
  • 资源 (1)
  • 收藏
  • 关注

原创 js操作符

只有当左侧为null或undefined时才会返回右侧的值,否则返回左侧操作数。

2024-08-17 16:20:27 228

原创 ts中extends关键字

11。

2023-05-08 13:44:26 1747

原创 ts中常见的Utility Type原理解析

1.Partial。

2023-05-08 09:57:49 778

原创 node的版本管理-n

node版本管理

2022-12-28 12:16:56 906

原创 promise原理

promise原理

2022-08-31 14:08:02 335

原创 彻底搞懂this指向

js中this的理解,面试

2022-08-29 15:45:25 280

原创 浏览器原理

浏览器,v8

2022-08-29 15:22:10 598

原创 自定义一个webpack的loader

loader的实现:loader的本质是一个函数,参数是上一个loader的返回值或者源代码,处理完之后返回值给下一个loader或者webpack核心: 里面主要是将源代码转成AST语法树,然后对这个语法树深度遍历改变其中的某些属性或者值之后得到一个新的语法树,再将这个新的语法树转成新代码返回。如何引入自己的loader1.使用别名的方式2.使用查找的方式3.直接在loader中使用绝对路径的方式resolveLoader: { // 第一种使用别名的方式...

2022-01-15 19:43:31 712

原创 js实现数组的一些方法

push:​Array.prototype.myPush = function () { for (var i = 0; i < arguments.length; i++) { //arguments代表实参的集合 //this 指向的是arr数组 this[this.length] = arguments[i]; } //由于push 返回值 是一个数组的长度 所以 我们来个return; return this.length;};​inde

2022-01-12 10:49:43 197

原创 MVC和MVVM的区别

MVC:视图(View):界面。 控制器(Controller):业务逻辑 模型(Model):数据保存View 传送指令到 Controller Controller 完成业务逻辑后,要求 Model 改变状态 Model 将新的数据发送到 View,用户得到反馈所有通信都是单向的。MVVM:它采用双向绑定(data-binding):View的变动,自动反映在 ViewModel,反之亦然。且View和Model之间没有通信。Angular和Ember都采用这种模...

2022-01-07 16:43:30 581

原创 React hook

111

2022-01-07 10:23:50 1028

原创 Ts相关面试题

1.unknown和any的区别TypeScript 3.0引入了一个顶级的unknown类型。1.对照于any,unknown是类型安全的。2.任何值都可以赋给unknown,但是当没有类型断言或基于控制流的类型细化时unknown不可以赋值给其它类型,除了它自己和any外。3.同样地,在unknown没有被断言或细化到一个确切类型之前,是不允许在其上进行任何操作的。let value: unknown;value = true; // OKvalue =

2021-08-03 13:46:46 2387 1

原创 redux中间件面试题

如果redux没有中间件它的工作流程是action->reducer,相当于一个同步操作但是当我们项目比较复杂比如有一个需求点击按钮->获取后端数据-> 渲染页面,获取后端数据是一个异步操作那么不使用redux的中间件就满足不了这个需求,有了中间件redux的工作流程就变成了action->middlewares ->reducer...

2021-06-03 19:33:05 2079

原创 redux

1.工作流

2021-06-03 19:25:48 1373

原创 react面试题

JSX一种把js和html混合书写的语法,这个语法浏览器是不支持的其实jsx只是一种语法糖,最终会通过babel转译成createElement语法createElement方法最终会返回一个js对象(虚拟dom),后面会通过render方法将虚拟dom转成真实的dom挂载到页面中...

2021-06-03 19:14:06 337

原创 react面试题

点我去看=====>react篇章点我去看=====>redux篇章点我去看=====>redux-saga篇章点我去看=====>reduxzhong jian j篇章

2021-06-03 18:51:43 193

原创 设计模式面试题

设计模式

2021-06-03 18:49:06 127

原创 webpack面试题

webpack

2021-06-03 18:48:24 195

原创 算法面试题

---

2021-06-03 18:47:35 89

原创 浏览器面试题

浏览器面试题1.前端怎么解决跨域1.Jsonpjsonp的原理就是利用<script>标签没有跨域限制,通过<script>标签src属性,将本地的全局函数通过callback传到服务器,服务端将接口返回数据拼凑到callback函数中,返回给客服端实现思路服务端的代码:<script>var script = document.createElement('script');script.type ............

2021-06-03 18:32:51 948 1

原创 js面试题

javascript面试题1.js判断类型1、typeof所以typeof常用于检测基本类型null返回的也是object2、instanceof不能检测基本类型,所以instancof常用于检测复杂类型 3、constructornull、undefined没有construstor方法,但是contructor的指向是可以被改变,所以不安全4、Object.prototype.toString.call全类型都可以判断2.普通函数和箭头函数的区别1、普通函数...

2021-06-03 18:22:23 1749

原创 CSS面试题

1.有哪些方式(CSS)可以隐藏页面元素?1.opacity:0本质是将元素的透明度降为0,看起来是隐藏了,但是依然占据空间2.visibility:hidden占据空间3.display:none彻底隐藏元素,元素从文档流中消失,不占据空间4.z-index:-9999原理是将层级放到底部,看起来是隐藏了5.overflow:hidden这个只是隐藏元素溢出的部分6.transform:scale(0,0)将元素缩放为0,但是依然占据空间2.em\px\rem区别?Px:绝对

2021-06-03 18:09:15 1451

原创 前端知识梳理

整理了一下面试题,由于太多,所以根据类型不同分为下面几类点我去看=====>html篇章点我去看=====>css篇章点我去看=====>js篇章点我去看=====>l篇章

2021-06-03 17:59:05 350

原创 强制缓存和协商缓存

什么是浏览器缓存浏览器缓存(Brower Caching)是浏览器在本地磁盘对用户最近请求过的文档进行存储,当访问者再次访问同一页面时,浏览器就可以直接从本地磁盘加载文档。浏览器缓存主要有两类:协商缓存和强缓存。1.强缓存:不会向服务器发送请求,直接从缓存中读取资源,状态码是200;2.协商缓存:向服务器发送请求,服务器会根据这个请求的Request headers的一些参数来判断是否命中协商缓存,如果命中,从缓存中读取数据,返回304状态码两者共同点:都是从客户端缓存中读取资源;区

2021-03-07 20:30:24 4771 2

原创 重学git

前言为什么要写这篇博客呢?我想你应该遇到和我同样的问题,知道git的大部分命令,但是用的时候还是需要靠百度,稍微变着法用的时候就会疑惑半天,原因大概是知识不系统且不知道源头吧,所以这篇博客就由此出现啦我会将每个指令作为一章节,开始我的编写~1.branch2.status3.log/reflog4.add5.commit6.checkout7.push8.reset9.stash10.pull11.fetch12.merge13.rebase1

2020-07-24 15:49:45 317

原创 javaScript深入之call、apply、bind的实现

call的作用有两点:1.改变this 2.让函数执行我们先来用一下call:var foo={ value:1}function bar(){ console.log(this.value)//1}bar.call(foo)上面例子让this指向了foo,并让bar执行了下面进入重点模拟实现call我们将上面的foo对象改造一下,如下var f......

2020-04-27 10:22:01 385

原创 react-router-dom路由参数

本文主要介绍react-router-dom路由传参数的方式以及它们的区别路由传参有4种方式 1.search 2.state 3.params 4.query1.search 推荐这种 因为很容易在地址栏中看到传过来的参数路由path配置 <Route path="/staff/staff-detail"/>或者path配置 <Route path="/s...

2020-03-05 17:37:18 3078

原创 前端下载/导出文件的几种常用方法对比

前言在前端网页中,这是一个极其普遍的需求,所以总结一下,方便日后提高工作效率1.window.open或者window.location.hreflet url = '/api/dhr/test_reports/download';window.open(`${url}?session=${session}&staff_id=${query.staff_id}`, "_bl...

2020-02-24 11:33:10 1849

原创 简述react-router-dom原理

实现根据不同路径渲染不同的组件有两种实现方式:HashRouter :利用监听hash变化(有一个事件hashchange)实现路由切换,它是路由容器,渲染子组件,并向下层子组件传递(Context上下文传递)loaction,history等路由信息window.addEventListener(‘hashchange’,()=>{window.location.hash})...

2020-02-23 12:01:25 1214

原创 js事件循环机制(event loop)之宏任务/微任务

1.关于jsjs是单线程的,即主线程就只有一个2.js事件循环除了广义的同步任务和异步任务,对任务更细致费划分:macro-task(宏任务):包括整体代码script,setTimeout,setInterval等 micro-task(微任务):Promise,process.nextTick等js执行的时候:第一步:js解释器识别所有js代码,将同步的代码放到.........

2019-10-18 15:27:56 2679 2

原创 react学习笔记

1.定义组件的方式通过函数定义://通过props获取组件传来的参数function App(props){ return &lt;div&gt;props.name&lt;/div&gt; }&lt;App name="aaa"&gt;&lt;/App&gt;通过class定义class App extends React.Component{ ren...

2018-12-06 18:54:08 174

原创 js实现一个可以兼容PC端和移动端的div拖动效果

拖动时候用到的三个事件:mousedown、mousemove、mouseup在移动端都不起任何作用。毕竟移动端是没有鼠标的,查资料后发现,在移动端与之相对应的分别是:touchstart、touchmove、touchend事件。还有一点要注意的是在PC端获取当前鼠标的坐标是:event.clientX和event.clientY,在移动端获取坐标位置则是:event.touch...

2018-09-19 16:55:37 1362

原创 git add . git add -U git add -A的区别

总结:·  git add -A  提交所有变化·  git add -u  提交被修改(modified)和被删除(deleted)文件,不包括新文件(new)·  git add .  提交新文件(new)和被修改(modified)文件,不包括被删除(deleted)文件...

2018-09-19 14:01:56 1953 1

原创 windows10 下 MongoDB的安装

 安装MongoDB MongoDB下载地址:http://www.mongodb.org/downloads 下载安装包之后直接打开运行,安装包放在自己想放的位置,本次安装包是放在C盘的根目录下一直执行Next下一步,当进入这个界面的时候,下面的√一定要去掉,不然会安装的特别的慢,如果不去掉,可能要等几个小时以上,小编亲身已经试验过了当所有的步骤值完成的时候,找...

2018-08-24 12:52:19 1117 2

原创 this.$nextTick

首先我们先来看看官方介绍的用法:将回调延迟到下次 DOM 更新循环之后执行。在修改数据之后立即使用它,然后等待 DOM 更新。它跟全局方法 Vue.nextTick 一样,不同的是回调的 this 自动绑定到调用它的实例上。理解:1.总结来说, 假设我们更改了某个dom元素内部的文本,而这时候我们想直接打印出这个被改变后的文本是需要dom更新之后才会实现的,也就好比我们将打印输出的代码放在setT...

2018-06-22 09:38:48 10848 3

原创 如何向Github README.md中添加图片

1.先把图片上传到你的项目中;然后在github网站上按路径打开图片,如下打开的图片链接:2.复制图片的地址然后在README.md写上:![这里随便写文字](你刚复制的图片路径)注意  上面的感叹号和中括号和小括号之间不能有空格(都是英文状态下的)然后保存就能看到下面的效果,赶快试试吧: ...

2018-04-24 17:57:35 16229 3

原创 微信小程序web-view的使用

最近公司有需求,需要点击小程序首页banner,跳转到我们的h5页面。首先是域名的问题:步骤:先登录小程序开发平台,将页面需要跳转的域名写上去,注意了,域名不是指服务器的域名,而是服务器下面的业务域名 !!!配好了域名之后就可以开始调用web-view了。1.如果你不需要通过点击小程序里面的按钮或者某个view,那么你可以直接在小程序里面直接调用下面的代码即可&lt;web-view src="h...

2018-04-19 16:22:11 9354 3

原创 vue(购物车)

&lt;template&gt; &lt;div&gt; &lt;div class="row"&gt; &lt;!-- 菜单 --&gt; &lt;div class="col-sm-12 col-md-8"&gt; &lt;table class="table"&gt; &lt;thead class=&q

2018-03-20 10:04:09 340

原创 js函数节流和防抖

概念函数防抖(debounce):当调用动作过n毫秒后,才会执行该动作,若在这n毫秒内又调用此动作则将重新计算执行时间函数节流(throttle):预先设定一个执行周期,当调用动作的时刻大于等于执行周期则执行该动作,然后进入下一个新周期函数节流(throttle)与函数防抖(debounce)都是为了限制函数的执行频次,以优化函数触发频率过高导致的响应速度跟不上触发频

2018-02-02 15:37:37 573 1

原创 克隆远程仓库 并提交本地修改

在GitHub上创建一个仓库git-test点击create repository 进入下图利用git clone https://github.com/yangqianlu/git-test.git命令克隆远程仓库到本地在git-test中增加一个2.test 文本 并在里面写入内容之后在git中执行命令将本地修改 同步到远程利用命令git push origin master,刷新Git

2017-12-25 16:14:59 3373

vue2.0 实现翻译的小案例

这是个vue2.0 实现翻译的小案例 下载在自己电脑 直接npm run dev即可

2017-11-24

空空如也

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

TA关注的人

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