自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 剑指offer-57 和为s的连续正数序列

题目描述:输入一个正整数 target ,输出所有和为 target 的连续正整数序列(至少含有两个数)。序列内的数字由小到大排列,不同序列按照首个数字从小到大排列。输入:target = 9输出:[[2,3,4],[4,5]]输入:target = 15输出:[[1,2,3,4,5],[4,5,6],[7,8]]滑动窗口法头尾指针,最开始头指针指向数组0下标处,尾指针比头指针多1,而后开始移动,利用等差数列的求和公式来对头尾指针的区间内的元素求和/** *

2020-08-21 17:58:20 144

原创 剑指offer-39 数组中出现次数超过一半的数字

题目描述:数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。你可以假设数组是非空的,并且给定的数组总是存在多数元素。输入: [1, 2, 3, 2, 2, 2, 5, 4, 2]输出: 2限制:1 <= 数组长度 <= 500001.哈希法将数组中每个数作为对象的键存进空对象里,下一次循环判该键存在时次数+1,最后统计对象中每个键对应的值如果有大于nums长度一半的就输出时间复杂度O(n),空间复杂度O(n)/** * @param {numb

2020-08-20 17:37:05 134

原创 几个Promise栗子看JS的运行机制

今天又着重看了一下Promise,果然温故而知新,之前一直是懵懵懂懂的状态,赶紧记录下来。首先搞清楚几个名词:异步任务:是那些被引擎放在一边,不进入主线程、而进入任务队列的任务。例如setTimeout、setInterval、事件监听、Ajax请求等等。同步任务:会立即执行的任务。除了异步任务的任务除此之外还可以分为宏任务和微任务,这个在稍后介绍。主线程在运行的时候会有执行栈...

2020-03-21 00:40:05 212

原创 输入框监听键盘事件

键盘按键的主要事件有focus,keydown、keypress、keyup、input、onchange、blurkeydown:当用户按下键盘上的任意键(除了Prtsc)时触发,如果按住不放的话,会重复触发此事件;keypress:当用户按下键盘上的字符键(字母、数字、符号、回车空格)时触发,如果是组合键的话(shift+1)触发一次,如果按住不放的话,会重复触发此事件;keyup:当...

2020-03-18 00:31:57 2613

原创 Function.prototype和Object.prototype

先看一个栗子function Person(){ }var p = new Person()console.log(Person instanceof Person)//false 1console.log(String instanceof String)//false 2console.log(Array instanceof Array)//false 3 co...

2020-03-17 00:17:21 1607

原创 Object.create()和Object.assign()

Object.create()的语法:Object.create(proto[, propertiesObject])1.proto:新创建对象的原型对象。2.propertiesObject:可选。如果没有指定则为undefined,则是要添加到新创建对象的不可枚举(默认)属性(即其自身定义的属性,而不是其原型链上的枚举属性)对象的属性描述符以及相应的属性名称。这些属性对应O...

2020-03-15 21:20:28 846

原创 JS中的对象的继承

目录构造函数继承1.构造函数绑定2.使用prototype原型链和构造函数绑定的组合继承3.直接继承父函数的prototype4.使用空对象作为中介5.拷贝继承非构造函数继承1.object方法2.浅拷贝3.深拷贝构造函数继承假设现在有两个构造函数,Animal和Catfunction Animal(){ this.species ...

2020-03-15 14:52:07 188

原创 剑指offer-09 用两个栈实现队列

题目描述:用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素,deleteHead操作返回 -1 )示例 1:输入:["CQueue","appendTail","deleteHead","deleteHead"][[],[3],[],[]]输出:...

2020-03-13 23:17:54 585 2

原创 new一个新对象的过程中都发生了什么?

new是一个运算符,在js中函数可以作为普通函数被调用做方法,也可以通过new来调用作为一个构造器。如果有一个函数function Person(name,age){ this.name = name; this.age = age; this.sayHello = function(){ console.log(this.name + "say ...

2020-03-13 16:37:40 138

原创 剑指offer-25 合并两个有序链表

目录思路1思路2(迭代)思路3(递归)题目描述:输入两个递增排序的链表,合并这两个链表并使新链表中的节点仍然是递增排序的。示例1:输入:1->2->4, 1->3->4输出:1->1->2->3->4->4限制:0 <= 链表长度 <= 1000思路1新定义一个链表,然后分别从l1...

2020-03-13 15:41:40 89

转载 浏览器同源策略(跨域问题)

同源策略浏览器同源策略的核心就在于它认为自任何站点装载的信赖内容是不安全的。当被浏览器半信半疑的脚本运行在沙箱时,它们应该只被允许访问来自同一站点的资源,而不是那些来自其它站点可能怀有恶意的资源同源指的是:协议、域名、端口号全部相同下表给出了相对http://store.company.com/dir/page.html同源检测的示例:同源策略又分为以下两种:DOM 同源策...

2020-03-07 17:59:18 536

原创 浏览器渲染页面过程

渲染过程1.解析html文件,先是head,后是body2.如果头部有外部的css链接,就去下载该css,如果有js链接也去下载3.解析body部分,并生成DOM树,同时浏览器主进程去下载CSS4.CSS文件下载完成,解析CSS文件成树形的数据结构(CSSOM树),然后结合DOM树合并成RenderObject树5.布局(layout):布局RenderObject树,负责Re...

2020-03-06 21:46:59 239

原创 JavaScript学习之路

for...in...循环会自动跳过那些未被赋值的元素,而for循环不会跳过for: 比较适合遍历数组,字符串等等。 for in: 比较适合遍历对象,遍历对象时使用这个再合适不过了。 while: while 的话,与 for 的使用场景差不多。唯一不同的是,遍历的条件必须满足。 do while: 至少执行一边的循环,遍历数组和字符串也是很方便。null和undef...

2020-03-06 17:17:28 232

原创 HTTP1.0、1.1、2.0及HTTPS

HTTP协议是一个基于请求与响应,无状态的,应用层的协议,常基于TCP/IP协议传输数据。目前任何终端(手机,笔记本电脑。。)之间进行任何一种通信都必须按照HTTP协议进行,否则无法连接。基于HTTP协议的客户端/服务器请求响应机制的信息交换过程包含下面几个步骤:1) 建立连接:客户端与服务器建立TCP连接(三次握手)2) 客户端发送请求:打开一个连接后,客户端把请求信...

2020-03-01 22:20:11 1566

原创 当地址栏输入URL之后

当浏览器的地址栏输入了URL并按下回车之后,用户看到页面之前,在浏览器和世界上的许多台服务器之间就有了许多次计算和操作。过程大概总结如下:1.浏览器向DNS服务器查找输入的URL对应的IP地址(域名解析)2.DNS服务器找到了IP地址返回给浏览器3.浏览器根据该IP地址与目标服务器在80端口上建立TCP连接(三次握手)4.浏览器获取请求页面的html文件5.浏览器在窗口渲染ht...

2020-02-29 23:34:34 326

转载 CSS Sprites

简介:CSS Sprites被称作CSS精灵,是一种网页图片应用处理方式。它可以将一个页面涉及到的所有零星的图片都包含到一张大图中, 利用CSS的“background-image”,“background- repeat”,“background-position”的组合进行背景图片定位, 访问页面时避免图片载入缓慢的现象。优点:1.提高页面的性能,减少网页http请求。因为CSS ...

2020-02-29 16:04:14 126

原创 剑指offer-18 删除链表的节点

描述:给定单向链表的头指针和一个要删除的节点的值,定义一个函数删除该节点。返回删除后的链表的头节点。示例:输入: head = [4,5,1,9], val = 5输出: [4,1,9]解释: 给定你链表中值为5的第二个节点,那么在调用了你的函数之后,该链表应变为 4 -> 1 -> 9.常规思路:定义一个暂时变量用来删除节点,注意若要删除a节点,则需使用...

2020-02-28 16:51:01 166

原创 剑指offer-65 两数之和

两数之和描述:写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。思路:不能用四则运算符,考虑使用位运算。加法需要处理的最重要的步骤就是进位。在位运算中,异或(^)结果为1是表示两位不同,则是表示这两个数在这一位上一个是0一个是1,在进行“相加”时,不用进位。与(&)运算结果为1是表示两位都为1,则是表示这两个数在这同一位上都是1,需要进位,进位就是左...

2020-02-28 16:50:51 69

原创 LeetCode系列-1.两数之和

描述:给定一个整数数组 nums和一个目标值 target,请你在该数组中找出和为目标值的那两个整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1]思路一...

2020-02-28 16:50:33 77

原创 刷题总结

JS中的字符串不可变性 JS中字符串的值是无法被改变的,例如var S1 = "hello world!"S1[0] = 'a'console.log(S1[0]) //打印'h',不会变成'a'但实施以下操作是成立的:var s1 = "heihei"s1 += "haha"console.log(s1) //"heiheihaha"var s2 = "w...

2020-02-28 15:57:38 196

空空如也

空空如也

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

TA关注的人

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