自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 js防抖与节流

  用户点击某个选项进行资源请求时有可能会手抖连点几下,此时就会进行多次请求加重服务器负担,防抖和节流就是对用户请求频率做限制,使其在一定时间内只能执行一次(前端优化)。在很多方面都需要用到,比如监听滚动,修改dom时等…防抖  在事件被触发n秒后执行回调,若n秒内再次触发事件则重新计时。// 防抖function debounce(fn, wait) { var timeout = null; return function() {

2021-09-22 19:11:42 176

原创 js中工厂函数、构造函数、原型及原型链详解

。。。

2020-07-23 12:05:02 1303

原创 promise相关知识及使用

15、promisePromise出现的目的是解决nodeJS异步编程中回调地狱的问题。见编辑器:data\基础\PromisePromise()本身是同步的,但是它里面往往放的是异步任务resolve作用是,将Promise对象的状态从“未完成”变为“成功”(即从 pending 变为 resolved),在异步操作成功时调用,并将异步操作的结果,作为参数传递出去;reject作用是,...

2020-06-05 16:01:28 167

原创 前端跨域问题总结整理

前端跨域问题总结整理一些常用的跨域解决方案①JSONP②CORS③document.domain + iframe跨域④跨文档通信 API:window.postMessage()77nginx反向代理接口跨域Nodejs中间件代理跨域webpack 代理,主要用于开发阶段WebSocket协议跨域功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右创建一个自定义列表如何创建一个注脚注释也是必不可少的导出与

2020-06-05 08:21:31 230

原创 javascript中this的指向问题(包括普通函数和箭头函数)

javascript中this的指向问题一. 全局作用域或者普通函数中 this 指向全局对象 window。①全局作用域②普通函数③自执行函数this指向window④定时器(setTimeout setInterval)环境this指向window⑤在普通对象里面this指向window二. 在调用方法时谁调用的this就指向谁①对象中方法的调用三.在构造函数或者构造函数原型对象中 this ...

2020-01-29 12:19:04 410

原创 java多维数组在内存中的存储详解

比如下面这段代码:int[][] arr = new int[3][];arr[0] = new int[3];arr[0][1] = 5;arr[1] = new int[]{1,2,3};①执行到:int[][] arr = new int[3][];在内存中如图://此时若输出:System.out.println(arr);//地址System.out.println(arr[0]);//nullSystem.out.println(arr[0][0]);//报错②执

2020-07-25 10:01:31 752 1

原创 js运行机制详解(Event Loop)

1、基础知识js作为浏览器脚本语言,它的主要用途是验证表单操作DOM,这也就决定js必须是单线程(避免几个线程同时操作同一个DOM);单线程就意味着,所有任务需要排队,前一个任务结束才能执行后一个任务。如果前一个任务耗时很长,后一个任务就不得不一直等着。为了利用多核CPU的计算能力,H5的Web Worker实现的“多线程”实际上指的是“多子线程”,完全受控于主线程,且不允许操作DOM;js引擎存在monitoring process进程,会持续不断的检查主线程执行栈是否为空,一旦为空,就会去Eve

2020-07-24 20:16:42 243

原创 使用let/const的定义的变量,不会绑定到window对象中,不能使用window.xx的形式使用

在总结 apply()与call()时发现一个问题:let 定义的变量使用 window.xx 的形式使用时打印 undefined ,经过尝试后在此进行小结。先说结论:使用let、const、import、class的定义的变量,不会绑定到window对象中,不能使用window.xx的形式使用。使用var、function定义变量会绑定到window对象上。let num = 1console.log(this.num)//undefinedconsole.log(this)//Window 里

2020-07-12 11:41:52 1985

原创 js中的arguments对象

摘取于MDN Arguments 对象。arguments 是一个对应于传递给函数的参数的类数组对象。 “类数组”表示 arguments 具有length属性和从零开始索引的属性,但是没有Array诸如forEach()和的内置方法map()。function func1(a, b, c) { console.log(arguments[0]); // expected output: 1 console.log(arguments[1]); // expected output:

2020-07-11 16:57:14 238

原创 Array.prototype.slice.call(arguments,1)

对 Array.prototype.slice.call(arguments,1) 的简要理解。首先对其进行简要拆分:Array.prototype 属性表示 Array 构造函数的原型,并允许您向所有Array对象添加新的属性和方法。slice(start,end) 是Array原型上的方法,可以对一个数组进行截取(从start开始,不包含end;如果只有 start 则截取从 start 到数组结束的所有元素。)并返回一个新的数组(浅拷贝)。call() 简单理解为可以改变对象的this指向

2020-07-11 15:44:36 1547

原创 js中Number()与new Number()

js中的数据类型包括基础数据类型(number、string、boolean、null、undefined)和复合(引用)数据类型(Object—>包括Array、function、Data等)其中基础数据类型的 boolean、number、string又称为包装类型。当 Number() 和运算符 new 一起作为构造函数使用时,它返回一个新创建的 Number 对象。如果不用 new 运算符,把 Number() 作为一个函数来调用,它将把自己的参数转换成一个原始的数值,并且返回这个值(如果转

2020-07-08 07:09:37 5157 1

原创 js中判断某个数据的类型

js中的数据类型:1)、基本数据类型<1>数值 number<2>字符串 string<3>布尔值 boolean<4>空类型 null(空)<5>未定义类型 undefined 2)、复合数据类型(引用数据类型:引用的是地址)Object—>包括数组(Array)、函数(function)、日期(Data)等1、使用typeof能判断出6种,分别是number、string、boolean、undefined、objec

2020-07-06 18:49:08 356

原创 js深浅拷贝与内存机制

参考与:js中的栈、堆、队列、内存空间1、深浅拷贝将一个变量的值赋值给另一个变量,相当于在栈内存中创建了一个新的内存空间,然后从栈中复制值,存储到这个新空间中。对于基本类型,栈中存储的就是它自身的值,所以新内存空间存储的也是一个值。直接改变新变量的值,不会影响到旧变量的值,因为他们值存储的内存空间不同。// 基本类型复制变量let a = 10let b = ab = 20console.log(a,b)//10 20而对于引用类型来说,同样是复制栈中存储的值。但是栈存储的只是其引用地址,

2020-06-27 16:20:29 294

原创 js中的栈、堆、队列详解;执行栈、执行上下文理解

参考与:js中的栈、堆、队列、内存空间栈(stack) 、堆(heap)、 队列(queue)是js的三种数据结构。一、栈栈的特点:后进先出,数据存储时只能从顶部逐个存入,取出时也需从顶部逐个取出。js中数组模拟栈:let arr = [1, 2, 3, 4, 5];let a = arr.push(6); // 存入数据(进栈) arr -> [1, 2, 3, 4, 5, 6]let b = arr.pop(); // 取出数据(出栈) arr -> [1, 2, 3, 4,

2020-06-27 11:58:28 844

原创 console详解,一些不常用的小知识

Console 对象提供的一些有趣的方法:详见 菜鸟教程 HTML DOM Console<!DOCTYPE html><html> <head> <meta charset="utf-8"> <title>console不常见用法</title> </head> <body> <script> /* console.log支持的格式标志有: %s

2020-06-26 22:55:10 325

原创 vue生命周期图解

生命周期详解图示:下面每个生命周期钩子所处状态图参考:Vue生命周期整理代码体会:<!DOCTYPE html><html> <head> <meta charset="utf-8"> <title>vue生命周期学习</title> </head> <body> <div id="app"> <h1>{{message}}</h1>

2020-06-26 20:47:29 112

原创 MVC与MVVM简单解析

内容来源于网络,仅供参考。  1、MVC(Model–view–controller) 是软件工程中的一种软件架构模式,其把软件系统分为三个基本部分:模型(Model)、视图(View)和控制器(Controller)。MVC模式的目的是实现一种动态的程序设计,使后续对程序的修改和扩展简化,并且使程序某一部分的重复利用成为可能。MVC模式中,View跟Model,必须通过Controller来承上启下。控制器(Controller)- 负责View和Model之间调度,转发或处理请求。视图(View

2020-06-26 17:54:01 234

原创 原生js获取设置元素样式及属性值小结

一、元素样式1、原生js获取元素样式以下使用dom代表元素节点。1、dom.style.xx  如要获取一个元素的color,可以使用 元素.style.color 。需要注意的是这种方式只能获取元素的行内样式值,无法获取到定义在<style></style>标签和通过<link href="xx.css">加载进来的样式。语法如下:let el= document.getElementById("test");el.style.color;2、getCo

2020-06-15 10:40:27 2030

原创 使用cookie和session实现登录(简单原理解析)

cookie:浏览器在客户端电脑硬盘中开辟的一块空间,主要用来存储服务端数据(比如sessionId)。cookie中的数据是以域名的形式进行区分的。cookie中的数据是有过期时间的超过时间会被浏览器自动删除。cookie中的数据可以随着请求被发送到服务器端。客户端第一次向服务器端发送请求时是没有cookie的,请求后服务器端会在cookie中存入一些数据。下次在访问相同的服务器就会带上cookie中的数据。session:实际上是一个对象,存储在服务器端的内存中,在session对象中也可以

2020-06-13 16:01:47 5254

原创 web前端http面试题小结

问题1:为什么建立连接是三次握手,四次不可以吗第一次握手:Client什么都不能确认 Server确认了对方发送正常 第二次握手:Client确认:自己发送/接收正常,对方发送/接收正常 Server确认:自己接收正常 ,对方发送正常 第三次握手:Client确认:自己发送/接收正常, 对方发送/接收正常 Server确认:自己发送/接收正常,对方发送/接收正常 所以通过三次握手确认双方收发功能都正常,四次也可以但是显得比较多余。TCP三次握手,如果两次握手会怎么样

2020-06-09 16:58:13 133

原创 TCP连接3次握手与4次挥手理解

(1)seq: 序列号,占32位,用来标识从TCP源端向目的端发送的字节流,发起方发送数据时对此进行标记。占4个字节,用来标记数据段的顺序,TCP把连接中发送的所有数据字节都编上一个序号,第一个字节的编号由本地随机产生;给字节编上序号后,就给每一个报文段指派一个序号;序列号seq就是这个报文段中的第一个字节的数据编号。(2)ack: 确认号,占32位,只有ACK标志位为1时确认序号字段才有效,ack=seq+1。占4个字节,期待收到对方下一个报文段的第一个数据字节的序号;序列号表示报文段携带数据的第一个

2020-06-07 19:09:30 399

原创 HTTP协议和一些相关小知识

1、什么是协议?什么是HTTP协议?HTTP协议具有什么特性?协议是计算机之间通过网络实现通信时事先达成的一种“约定”;HTTP协议(超文本传输协议)是客户端与服务器进行请求和应答的规则,它基于TCP/IP通信协议来传递数据(HTML 文件, 图片文件, 查询结果等)。特性:  无连接:\color{#FF3030}{无连接:}无连接:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。  媒体独立:\color{#FF303

2020-06-07 10:59:01 509

原创 runtime-only和runtime-compiler

runtime-only和runtime-compiler一、解析过程的差异二、性能差异博客内容来自coderwhy老师的vue.js视频,进行学习总结。一、解析过程的差异// Runtime-Complier 解析过程:1、将template模板解析成抽象语法树(ast)抽象语法树;2、将抽象语法树编译成render函数;3、将render函数再翻译成virtual dom (虚拟d...

2020-02-24 22:38:30 319

原创 webpack的详细配置使用过程

webpack的安装使用一、不使用vue-cli脚手架二、使用vue-cli脚手架2.x三、使用vue-cli脚手架3.xwebpack的使用依赖node.js环境,node.js安装配置见(这是别人写的,简单易懂):node.js安装配置一、不使用vue-cli脚手架首先全局安装(使用 webpack 4+ 版本,还需要安装 cli):npm install webpack webpac...

2020-02-21 23:03:06 669

原创 exports与module.exports的区分联系及用法,commonJS与ES6的模块化导入导出

exports与module.exports的区别联系及用法ES6和commonjs的导入和导出:ES6:commonjs:由下面两段代码片段及其输出值的对比:console.log(exports == module.exports)//trueconsole.log(exports)//{}console.log(module.exports)//{}exports = 1;//直...

2020-02-06 23:29:05 492

原创 关于css塌陷及浮动清除

关于css塌陷问题及浮动清除问题的解决一. css塌陷问题(包括边界塌陷和高度塌陷)1.上下相邻div边界塌陷2.父级容器和子级容器的上边界塌陷3.子div浮动导致父div高度塌陷二.清除浮动的方法一. css塌陷问题(包括边界塌陷和高度塌陷)1.上下相邻div边界塌陷对于上下两个相邻的div而言,上面div的margin-bottom和下面div的margin-top会塌陷,也就是会取上下...

2020-02-04 17:14:02 307

原创 js中for(const i in/of arr/obj)和vue中v-for指令的区别

js中for(const i in/of arr/obj)和vue中v-for指令的区别在js中在vue中v-for指令在js中 var obj = { q:'qqq', w:'www', e:'eee' } var arr1 = [ {r:'rrr'}, {t:'ttt'}, {y:'yyy'} ] var arr2 = ['uuu','iii','ooo']...

2020-02-03 11:27:49 2348

空空如也

空空如也

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

TA关注的人

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