自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 常见手写函数

function _new(){ var obj = {} var [constructor, ...args] = arguments obj.__proto__ = constructor.prototype constructor.apply(obj, args) return obj}function People(name){ this.name = name this.printName = function(){ co

2020-09-01 14:45:57 468

原创 原型

// 原型 & 原型链// 什么是原型?: 当我们创建一个新函数时,会为函数创建一个prototype属性,属性指向函数的原型对象// 什么是原型链?: 对象之间存在继承关系,javascript中通过prototype属性指向父类对象,直到指向object,形成的原型指向的链条,成为原型链// 构造函数(constructor)?: 原型对象默认有一个constructor属性,包含指向prototype属性所在函数的指针function Person(){}Person.pro.

2020-09-01 14:30:35 242

原创 手写promise

// 手写promise (function(window){ /** * 构造函数 * executor:执行器函数 */ function Promise(executor){ var self = this self.status = 'pending' // 状态,初始为pending self.data = undefined // 储存结果 self.callbacks = [

2020-09-01 14:26:56 163

原创 promise & generator & async/await

// promise// 关于回调地狱/** * 回调函数带来的问题: * 1. 代码可读性差 * 2. 回调比较多时,错误捕捉难处理 * 3. 控制反转带来的信任问题 -- 在进行异步请求时,用到第三方工具库,回调函数交由第三方库执行,由第三方库决定何时执行回调函数,执行回调函数次数,第三方工具库是否百分之百可靠,带来的信任问题 */// try { setTimeout(()=>{ console.log(1) setTimeout(()=

2020-09-01 14:24:41 122

原创 延时问题的链式调用

问题:function Queue(){ }实现队列Queue的两个方法:add(timeout, callback) -- 给队列中添加方法start() -- 执行队列中的方法,执行完之后队列清空 实现链式调用例如:var que = new Queue()que.add(1000, function(){ console.log("1")}).add(2000, function(){ console.log("2")}).add(1000,

2020-09-01 14:21:51 278

原创 this指向问题

<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>this指向常见问题</title></head><body> <script&

2020-09-01 11:45:47 158

原创 闭包

// 闭包// 何为闭包?: 有权访问另外一个函数作用域中变量的函数,简单形式就是:外部函数中生成一个内部函数,并通过return来返回,内部函数可以访问外部函数作用域中的函数,因此,外部函数调用之后变量对象本该被销毁,但由于闭包的存在,我们仍然可以在全局访问外部函数的变量。// 关键:闭包引用外部函数的变量;在外部函数的外部调用闭包// 注意事项:函数的作用域会一直保存到闭包不存在// example:function arrFn(){ var arr = [] for(var

2020-09-01 11:43:59 131

原创 ES6 -- 字符串

字符串的unicode表示ES6加强了unicode的支持,只要将码点放在 { } 中,就可以正确解读码点不在\u0000~\uFFFF范围内的字符console.log("\u20BB7") //₻7console.log("\u{20BB7}") //????字符串的遍历器接口ES6为字符串添加了遍历器接口,使得字符串可以被for…of…遍历for(let c of "str"){ console.log(c) // s t r}模板字符串模板字符串写在反引号

2020-09-01 11:42:15 131

原创 class继承

ES6中引入class创建类,extends实现类的继承,通过new来创建实例类,这种形式的类的创建与继承与Java等面向对象编程语言更为相似class Point{ constructor(x,y){ // -- 每个类都要有constructor,若没有显式定义,则会默认添加空的constructor this.x = x this.y = y } toString (){ return '('+this.x+','+this.

2020-09-01 11:40:38 131

原创 Class多种继承方式

// class 的多种继承方式// 继承1 -- 原型链继承:子类的prototype为父类的实例function Person() { this.name = "person" this.arr = [1, 2]//引用类型} Person.prototype.printName = function () { console.log(this.name)}function Student() { this.name="student"}Student.p

2020-09-01 11:39:28 1015

原创 计算机网络

计算机网络七层网络模型网络层IP传输层区别三次&四次 为什么TCP实现可靠数据传输的原理应用层七层网络模型七层网络模型的作用、协议https://blog.csdn.net/yaopeng_2005/article/details/7064869物理层 – 利用传输介质为数据链路层提供物理连接,实现比特流的传输数据链路层 – 接收来自物理层的位流形式的数据,封装成帧,传输到上一层,还负责处理接收端发回的确认帧的信息,通过差错控制和流量控制将有差错的物理线路转换为无差错的数据链路,实现可靠

2020-08-10 18:03:01 178

原创 CSS常用布局(主要三栏布局)

CSS常用五种布局:三栏布局,两列自适应布局,单列布局,等高布局,粘连布局从面试最常问到的开始吧:三栏布局七种实现方式:浮动布局当元素使用float时,块元素会脱离标准流,按照float所设置的属性值向其父元素(内边距)的左右两边靠拢,且其他元素会自动忽略该元素,盒子的宽度不会独占一行,而是由具体宽度或其内容决定补充:标准流的概念 – 网页内标签元素正常由上到下,从左到右的顺序排列...

2020-03-10 16:21:10 269

原创 GET和POST区别

get和post是HTTP两种发送请求的方式,HTTP是基于tcp/ip数据如何在万维网中传输的协议,get和post也都是基于tcp/ip,两者本质上其实并没有什么区别,但有一个较大的区别在于:get方式发送请求时,产生一个数据包,但是post方式发送请求时,产生两个数据包。get方式请求时,直接将header和data一并发送给服务器,服务器返回200 OK;post方式请求时,浏览器先...

2019-12-09 00:37:45 451

原创 Queue接口实现

Queue队列是一种先进先出数据结构,Queue是一个接口,具体的实现类又有哪些呢?注:Queue中有一些方法:add(),offer(),remove(),poll()add():当队列容量有限制无法再添加元素时,使用add方法来添加会抛出异常,使用offer方法,能添加成功返回true,添加失败返回falseremove():当队列为空时,使用remove会报错,使用poll方法,返回...

2019-12-09 00:18:29 655

原创 list接口实现

list接口实现类主要有:ArrayList,Vector,LinkedList其中LinkedList基于链表存储数据,中间插入删除数据时较为方便另外两种Arraylist,Vector底层都是基于动态数组存储,在尾部添加元素时,较为方便,但是在数组中间添加删除元素中时,需要移动后面的数据,故在数组中间添加删除数据时效率较低,这也是两者的相同点那么两者有什么区别?:ArrayList线性不...

2019-12-08 23:34:21 201

原创 Map接口实现

前面讲了set接口的实现类,这里简单介绍Map接口的实现,主要三种HashMap,TreeMap,LinkedHashMap,这三种实现类与set的常见三种实现了非常相似,除去map和set接口本身区别(map中存储的是键值对,set中存储是单个元素)对下面三个实现类与set实现类相似,这里不详谈,具体参考set接口实现(1)HashMap中键值对无序,无索引,两种遍历方式(增强for型遍历...

2019-12-08 19:29:31 422

原创 set接口实现

set接口,我们可以将其理解为数学中的集合。set中的元素是不重复的,没有索引,所以我们不能通过普通的for循环来遍历set中的元素。set接口的实现,主要有三种:HashSet,TreeSet,LinkedHashSet1.HashSet:其中的元素是无序的,因为没有索引所以如果想遍历HashSet一般用两种方式:增强型for循环和使用迭代器来遍历。 HashSet<Integer...

2019-12-08 18:52:54 497

原创 let和const命令

ECMAScript6相对于ECMAScript5新增改进了一些功能/命令,其中就新增了let声明变量和const声明常量。let&var在ECMAScript5中常用var来声明变量,ECMAScript6中新增了用let指令来声明变量,两者存在哪些区别?:作用域用let声明变量只在let所在的代码块有效,而用var声明的变量在代码块外也可以使用,是全局变量。{ var...

2019-11-23 17:31:12 160

原创 Java数据结构--查找

简单介绍常用的查找方法:顺序查找从线性表开始依次查找,若找到返回索引下标,没有找到则返回-1。 //顺序查找 public int seqSearch(int[] data,int key){ int index; for(index=0;index<data.length;index++){ if(data[index]==key)return index; }...

2019-11-15 08:59:37 400

原创 Java数据结构--排序

常用的排序

2019-11-14 22:40:31 173

原创 进程AND线程

之间面试被问到进程和线程,以及进程之间通信,答得很差,下面做些整理:进程是一个具有独立功能的程序关于某次数据集合的运行活动,是操作系统分配资源的基本单位。线程:一个进程中包含若干个线程,线程是独立运行、独立调度的基本单位。简单来讲就是:进程是程序在计算机上的一次执行活动,当你运行一个程序时,就启动了一个进程;而线程可以说是一个程序中独立运行的程序片段,是进程中独立执行的一个单元执行流,是程序...

2019-11-08 17:52:35 114

原创 TCP&UDP

tcp,udp

2019-11-07 10:32:27 209

原创 计算机网络-OSI七层模型

OSI,开放系统互联,将网络模型分为七层,而tcp/ip体系结构,相当于OSI体系结构的浓缩版,将网络模型分为四层,两者各有优缺点,综合两种体系结构形成一种只有五层的网络体系结构。下面是三种体系结构的直观比较:在了解体系结构之前先了解几个概念:实体、协议、服务实体:可发送或接受信息的硬件软件进程协议:对等实体之间进行通信的规则服务:下层通过层间接口向上层提供的即为服务物理层物理层...

2019-11-07 08:17:59 375

原创 JavaScript基础

JavaScript是一种脚本语言,主要包括:ECMAScript–提供核心语言功能,DOM–文档对象模型–提供访问操作网页内容的方法和接口,BOM–浏览器对象模型–提供与浏览器交互的方法和接口。1.JavaScript基本数据类型先来了解一下检测数据类型的操作符:typeofeg:var msg = "hello world";alert(typeof msg);typeof是操作符,后面...

2019-10-21 00:07:27 113

原创 前端之HTML&CSS

我也不知道为什么,前端从入门才看了不到一个月,中间还忙其他事,项目也没做,代码也没敲多少,啥也不会就投了百度的前端实习生,大概看了一下网上的前端面经更是想哭,啥也不说了,我是练习时长一个月的前端小菜!1.HTML语义化什么是HTML,HTML即超级文本标记语言,通过不同标记符号来标记网页不同部分。HTML语义化,从字面上理解,就是让HTML中的标记符号具有语义。例如:<h1>表示...

2019-10-19 14:24:14 217

原创 Arrays / Array / String

最近刷算法题常用到数组列表字符串,发现有一些方法真的真的很好用,下面系统的整理一下。ArrayscopyOf(原数组,副本指定长度);复制指定数组,使副本具有指定长度,长度比原数组短时,截取,长则用0/null/false填充。备注...

2019-10-09 13:00:59 180

原创 前端笔记

刚开始写前端,觉得一些知识真的很杂,属性真的很多(记不住啊),(很不系统,就是项目用到什么写什么,之后再做系统的汇总)lang = “en” html中的lang属性,首先lang是language的缩写,“语言”,这个属性是设置文本语言,(en代表设置为英语),你会发现如若不设置lang属性,也没什么问题,那么是否设置lang属性有什么区别,区别在于:如若你设置的lang与浏览器...

2019-09-26 14:32:07 194

原创 数据结构--树与二叉树

树是一种非线性结构,树中的每个结点有且只有一个前驱结点(除根结点没有前驱结点),可以有多个后驱结点,数据之间的逻辑关系并不是“一对一”关系,而是“一对多”的关系,反应数据元素之间的层次关系。树在讲二叉树之前先介绍一个树树是由n个结点构成,连接数据元素的称为边,边就类似于生活中树的枝干。树中唯一没有前驱结点(父节点)的结点成为根结点,除了根结点,其他结点有且只有一个根结点,此外,树中每个结点有...

2019-09-20 23:57:37 554

原创 数据结构-线性表

线性表

2019-09-19 22:48:06 314

原创 数据结构--队列

队列是一种特殊的线性表,区别在于队列只能在表的尾部(队尾)插入数据(称为入队),从表的头部(队头)删除数据(称为出队),故队列中的元素遵循先进先出(FIFO)的原则。线性表分为顺序存储和链式存储两种存储方式,队列自然也是,顺序存储的队列成为顺序队列,链式存储的队列成为链式队列。顺序队列单向列表两个指针域,front指向队列队首元素位置,rear指向队尾元素的下一个存储单元。元素入队或出队...

2019-09-19 11:28:12 226

空空如也

空空如也

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

TA关注的人

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