自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 前端跨域的解决方式

在前端部分其实我们通常所说的跨域是狭义的,是由浏览器同源策略限制的一类请求场景。所谓同源是指"协议+域名+端口"三者相同同源策略限制以下几种行为: 1.) Cookie、LocalStorage 和 IndexDB 无法读取 2.) DOM 和 Js对象无法获得 3.) AJAX 请求不能发送跨域的解决方式1.jsonp在使用XMLHTTPRequest对象发送HTTP请求时,会遇到同源策略问题,域不同请求会被浏览器拦截。这时就可以选择绕过,或者说是不使用XMLHTTPRequest对象进行发送跨

2020-05-18 12:30:53 486

原创 常见的四种请求和区别

get 请求资源(从服务器)post 发送资源 (向服务器)put 更新资源(向服务器)delete 删除资源(向服务器)这里主要说一下get和post的区别1.GET把参数包含在URL中,POST通过request body传递参数所以get的参数长度有限制,而post无限制2. GET在浏览器回退时是无害的,而POST会再次提交请求。3. GET请求只能进行url编码,而POST支持多种编码方式。4. GET请求参数会被完整保留在浏览器历史记录里,而POST中的参数不

2020-05-18 08:28:55 1655

原创 node基础

1 fs模块用于对系统文件及目录进行读写操作。var fs = require(‘fs’); // 载入fs模块使用require(‘fs’)载入fs模块,模块中所有方法都有同步和异步两种形式fs.unlinkSync(’/tmp/shiyanlou’); // Sync 表示是同步方法fs.readFile(filename,[option],callback) 方法读取文件。readFile的回调函数接收两个参数,err是读取文件出错时触发的错误对象,data是从文件读取的数据。fs.rea

2020-05-18 08:14:49 163

原创 git的操作

git的操作初始化git init第一次上传代码git add. //把代码上传到缓冲存git status 查看状态git commit -t ‘xxx’ 保存xxx的历史记录git push -u origin master //之后就直接用git push就行了创建分支git branch 查看分支git branch a 新建a分支g...

2020-05-02 20:52:24 215

原创 js数据结构之递归和循环 青蛙跳台阶问题

//题目:一只青蛙一次可以跳上1级台阶,也可以跳上2级台阶,求该青蛙跳上一个n级台阶总共有多少种跳法//分析假设跳上n级台阶可以为函数f(n),那么第一次跳一级就有f(n-1)种跳法//第一次跳二级台阶就有f(n-2)种跳法//所以f(n)=f(n-1)+f(n-2)function fibonacci(n){n1=1;n2=2;let a;if(n<=2){a=n}for...

2020-04-26 11:01:16 357

原创 js二个栈实现一个队列效果

//二个栈实现一个队列效果//栈是后进先出 可用shift()模拟//队列是先进先出 可用pop()模拟let s1=[3,2,1],s2=[];function del(){if(s2.length===0){let j=s1.length-1for(let i=0;i<s1.length;i++){s2[i]=s1[j-i]}s1=[]s2.pop()}...

2020-04-26 10:47:37 175

原创 二叉树 中序遍历下一个节点解题思路

1:节点指向父指针(同时是父指针的左指针),直接把父节点输出(下一个节点)。2:节点指向父指针(同时是父指针的右指针),找到父节点(假设为b),父节点继续向上查找自己的父节点(假设为a),如果是a指向b为左指针,直接输出a,不然重复2的过程,直到找到左指针。3:如果节点是根节点,先遍历右指针(找到子节点,假设为c),然后c向下遍历自己的子节点,知道找到的子节点的左指针为空。...

2020-04-26 10:21:48 265

原创 js数据结构链表之合并两个有序链表

//两个有序链表的合并l1={val:1,next:{val:2,next:{val:2,next:{val:4,next:null}}}}l2={val:1,next:{val:1,next:{val:3,next:{val:4,next:{val:5,next:null}}}}}function as(l1,l2){//这是初始条件if(l1=null){return l2}//这里...

2020-04-26 10:12:55 235

原创 js数据结构之单向链表的增删查

// 要存储多个元素,数组可能是最常用的数据结构。这种数据结构非常方便,但是有一个缺点:从数组的起点或者中间插入或移除项的成本非常高,因为需要移动元素(比如你插入一个元素后面的所有的元素都移动了“位置”)。// 链表存储有序的元素集合,但是不同于数组,链表中的元素在内存中并不是连续放置的。每个元素都是由一个存储元素本身的节点和一个指向下一元素的引用(也叫指针或者链接)组成。//一个元素的构成...

2020-04-25 13:06:09 190

原创 js数据结构之数组03 二维数组的查找

//在一个二维数组中,每一行每一列都是按照从上到小递增的顺序排序//输入一个数,查看在二维数组是否有这个数比如(5)//思路先在一行查找大于这个数的行的第一个数(7),那么这个数就在0~7//然后在列上查找是否有大于5的列,之后就循环这个范围就行了let arr=[]let number=7for(let i=0;i<4;i++){arr[i]=new Array;}arr...

2020-04-24 11:52:16 352

原创 js数据结构之数组02 如何找出重复的数字

//在不修改数组的情况下,如何找出重复的数字,数字范围小于数组长度//思路,使用二分法//首先数组数字大小在数组长度之间(假设数组长度为6),我们可以把数组分成0~2 和35两部分。如果02的数组元素有四个,那么必定在02有重复元素所以我们可以在把02分成0~1和2两部分//这个算法是以时间换空间空间复杂为o(1)时间复杂为o(nlog(n))let arr=[2,0,5,4,3,3,3...

2020-04-24 11:12:31 256

原创 js数据结构之数组01

//找出数组中重复的数字,数字的范围小于数组的长度//思路:遍历数组m,比较m[i]===i,如果相同就扫描下一个,如果不等于,m[i]和m[index]相同就找到了一个重复的数字,不相同就让m[i]和m[index](index=m[i])。//注意第一个数字,交换有可能就不会交换了let arr=[1,3,2,4,3,2];let result=[]for(let i=0;i<...

2020-04-24 09:50:51 211

原创 js高级函数

高级函数//函数安全//防止忘记使用new后,this指向windowfunction person(name,age,job){if(this instanceof person){this.name=name;this.age=age;this.job=job;}else{return new person(name,age,job);}}//构造函数窃取其他构造函数 ...

2020-04-23 13:24:56 220

原创 js 中的this指向

This指向总结一下this的指向1 new 绑定 this指向新创建的对象如 new a() //this就指向了 a2 函数是否在某作用域执行 那么this就指向这个作用域如A={ //这是A的作用域a:1,}Var a=2;Function s () { console.log(this.a)}A.s() //s函数在A中执行了,那么this指向A...

2020-04-23 13:23:13 111

原创 如何理解js中的闭包

闭包是指有权访问另一个函数作用域的函数那么闭包的特点就含有上级作用域的引用看一个闭包的例子var f;function a () {//a函数的作用域var s=2;function b () {console.log(s)}f=b;}function d () {f() //在d的作用域使用了f()–>b() 那么这里的d有权访问a作用域的b()}a();...

2020-04-23 13:21:53 129

空空如也

空空如也

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

TA关注的人

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