前端
文章平均质量分 62
Vhome_99
bug供应商 职业炒粉
展开
-
面试官:手写一个call、apply、bind?
手写call、apply、bind原创 2022-07-04 16:41:38 · 157 阅读 · 2 评论 -
VUE源码解析-响应式原理的实现
前言相信vue学习者都会发现,vue使用起来上手非常方便,例如双向绑定机制,让我们实现视图、数据层的快速同步,但双向绑定机制实现的核心数据响应的原理是怎么样的呢,接下来让我们开始介绍:function observer(value) { //给所有传入进来的data 设置一个__ob__对象 一旦value有__ob__ 说明该value已经做了响应式处理 Object.defineProperty(value, '__ob__', { value: this, //当前实例 也就是new o原创 2022-03-27 22:29:33 · 1364 阅读 · 0 评论 -
JavaScript深入解析原型到原型链
原型我们知道在每一个JavaScript函数中都有一个prototype 属性,相信我们在文章、书籍中的各个例子都可以看到,例如function fun() {}// prototype是函数才会有的属性fun.prototype.name = 'vhome';const fun1 = new fun(), fun2 = new fun();console.log(fun1.name) // vhomeconsole.log(fun2.name) // vhome输出name值原创 2022-03-16 01:21:33 · 1018 阅读 · 0 评论 -
TypeScript封装微信小程序请求实战
前言最近第一次做原生微信小程序,之前都是采用Taro、uni这两个第三方框架,发现微信原生小程序支持了TypeScript,于是尝试了使用ts结合Promise封装了微信简易请求库,不得不说,写ts确实可以减少动态语言(JS)带来的bug,如下:const host = 'xxx';/** * http请求配置*/interface RequestConfig { url: String; method?: HttpMethod; data?: any; nee原创 2022-03-10 20:38:12 · 2140 阅读 · 0 评论 -
一文解析TCP知识体系
TCP(传输层协议)特点:1. TCP是面向连接的。应用程序在使用TCP之前,必须先建立连接。在数据传输结束后,会马上释放已经建立的连接。2. TCP提供可靠的交付服务。通过TCP传输的数据,保证完整性、不丢失、不重复。3. TCP连接是点对点的。每一条TCP连接只能有两个端点,这个端点叫套接字(socket),即是两个IP。4. TCP是面向字节流的。流,指的是流入到进程或从进程流出的字节序列。面向字节流是指:虽然应用程序和TCP的交互是一次一个数据块,但是TCP把应用层传递过的数据看成一串无原创 2022-03-03 20:49:49 · 1322 阅读 · 0 评论 -
一文详解HTTP知识体系
http: 应用层超文本传输协议HTTP特点常见content-type字段类型HTTP请求方法GET与POST区别:1. GET在浏览器回退时是无害的,而POST会再次发起请求2. GET请求会被浏览器主动缓存,而POST不会,除非手动设置3. GET请求参数会被安逗保留在浏览器历史记录里,而POST中的参数不会被保留4. GET请求在URL中传递的参数有长度限制(浏览器限制大小不同),而POST没有限制5. GET参数通过URL传递,POST放在Request body中6. G原创 2022-02-28 01:26:58 · 1952 阅读 · 0 评论 -
window系统下node版本管理nvm下载使用及npm镜像源nrm下载
NVM下载及配置下载地址: https://github.com/coreybutler/nvm-windows/releases 根据自己盘符放置下载位置配置进入nvm安装路径下打开settings文件加入下列配置下载源镜像源node_mirror: https://npm.taobao.org/mirrors/node/npm_mirror: https://npm.taobao.or原创 2021-08-31 19:51:14 · 849 阅读 · 0 评论 -
手写一个Promise.all与Promise.race(前端高频面试题)
前言我们知道promise是es6中异步解决方案,极大的改善了回调地狱的问题,promise中也有很多api是我们日常开发中高频使用的,这里着重介绍Promise.all与Promise.racePromise.all我们使用Promise.all场景大多数是在需要一次性发送多次没有关联的请求,而它刚好能并行发送http请求,避免了网络拥塞情况,下面是实现原理 Promise.prototype.myAll = function (array) { if(!Array.isA原创 2021-03-19 01:29:50 · 515 阅读 · 3 评论 -
手写一个Promise
关于PromisePromise 是异步编程的一种解决方案,其实是一个构造函数,自己身上有all、reject、resolve这几个方法,原型上有then、catch等方法实现原理我们都知道Promise有三个状态,分为pending(挂起)、fulfilled(成功)、reject(失败),接下来让我们看看源码实现,这里简单编写了一个类,另外一种向外暴露Promise方法不在此实现class Promise{ constructor(executor) { this.status原创 2021-02-20 20:51:56 · 88 阅读 · 0 评论 -
Sublime配置下载Terminal插件最全版
前言关于Sublime配置Terminal插件,由于我是从网上下载压缩包,打开后发现并不能和其他教程一样在sublime内置那样下载,所以我采取了自己去官网下载,下面我打包好了package Control下载,提取码wh66以下教程适合在ctrl+shift+p打开下载contorl失败使用:点击上方菜单栏目找到Preferences -》Browse packages就进入Packages文件,此时点击data:找到Installed Packages文件,将下载好的Package Contr原创 2020-09-17 15:45:53 · 928 阅读 · 0 评论 -
js实现继承的几种常见方式
前言对于JavaScript而言,其没有明确的继承机制,因此js继承是以模仿来实现的,实现继承有以下通用的几种方式:一、原型链继承 function person(name) { this.name = name this.arr = [1,2,6,4,7] } person.prototype.eat = function () { console.log('吃饭') } function maliu(age) {原创 2020-09-05 17:35:40 · 167 阅读 · 0 评论 -
JavaScript中创建实例时,new做了什么?
随手写的New原理大致实现过程function dog(name) { this.name = name } function _new(fn,...args) { let obj =Object.create(fn) //创建实例 fn.call(obj,...args) //传输参数 return obj } let blw = _new(dog,'blw') console.log(blw.nam原创 2020-08-29 02:25:11 · 466 阅读 · 0 评论