自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 记录一下TCP和UDP常见问题

TCP(Transmission Control Protocol,传输控制协议)UDP(User Data Protocol,用户数据报协议)1. TCP和UDP有什么区别?答:TCPUDP连接面向连接无连接占用系统资源较多较少结构复杂较简单模式流模式数据报模式正确性保证数据准确丢包顺序保证不保证2. TCP和UDP适用于那些场景?答:TCP:当对网络通讯质量有要求的时候,例如:整个数据要准确无误的传递HT

2020-10-05 12:31:16 310

原创 简单认识RESTful API

(What)什么是RESTful API具象状态传输(REST,Representational State Transfer) 是一组实现效率、可读性、还有可拓展分散式系统的软件架构设计规范。如果一个系统能坚守这些规范,那么它就是 RESTful。说句简单点的话,RESTful API就是符合REST规范,即REST风格的API,那…那REST规范又是虾米(O_o)??HTTP动词对于资源的具体操作类型:对应SQL的命令含义GETSELECT从服务器取出资源P

2020-10-04 18:16:28 320

原创 “确保Web安全的HTTPS”

(What)什么是HTTPS?HTTP + 加密 + 认证 + 完整性保护 = HTTPS。HTTP加上加密处理和认证以及完整性保护后即是HTTPS。一道题:HTTP和HTTPS的区别?答:HTTP协议运行TCP之上,所有传输的内容都是明文的;HTTPS运行SSL/TLS之上,SSL/TLS运行TCP之上,所有传输的内容都经过加密的。HTTP默认端口为80,HTTPS默认端口为443。HTTPS是身披SSL外壳的HTTP,看一个图吧(╹▽╹)(Why)为什么要使用HTTPS?

2020-10-03 18:20:38 273

原创 简单认识Vue的生命周期

Vue的生命周期是什么?Vue的生命周期指的是组件从创建到销毁的一系列的过程(数据监听、编译模板、将实例挂载到 DOM 、更新 DOM 等)。通过Vue在生命周期各个阶段的钩子函数,可以很好的在Vue的各个生命阶段实现一些操作。Vue的各个生命阶段是什么?创建期间beforeCreate:该阶段初始化非响应式变量。data和methods仍未初始化,获取不了。created:该阶段常用于简单的ajax请求,页面的初始化。可以访问data和methods。但此时还没有挂载到页面中

2020-10-02 08:39:58 262

原创 简单认识网格布局

网格布局Flex布局常见布局两栏布局一般指的是页面中一共两栏,左边固定,右边自适应的布局 <div class="container" style="background-color: lightgrey;"> <div class="left" style="background-color: darksalmon;"> <p>left</p> </div>

2020-09-30 11:26:45 305

原创 简单认识JS中的事件流

事件流事件流描述的是从页面中接收事件的顺序。【IE的事件流是事件冒泡流,Netscape的事件流是事件捕获流】<!DOCTYPE html><html><head> <title>Event Bubbling Example</title></head><body> <div id="myDiv">Click Me</div></body></htm

2020-09-26 10:21:39 192

原创 关于JS中的Number类型

Number类型十进制八进制【第一位必须是零(0),然后是八进制数字序列(0 - 7)】 var num = 070; //有效的八进制 console.log(num); //56:八进制070输出的十进制为56十六进制【前两位必须是(0x),然后是十六进制数字(0 - 9及A - F(大小写均可))】 var num = 0xa; //有效的十六进制 console.log(num); //10:十六进制0xa输出的十进制

2020-09-23 12:22:36 944

原创 关于JS中的延迟加载

(Why)为什么要延迟加载?<!DOCTYPE html><html> <head> <title>Example HTML Page</title> <script type="text/javascript" src="example1.js"></script> <script type="text/javascript" src="example2.js"></scr

2020-09-22 16:34:00 400

原创 简单认识Vuex

(What)什么是Vuex?Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式。它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化。Vuex是实现组件全局状态(数据)管理的一种机制,可以方便的实现组件之间数据的共享。(Why)为什么使用Vuex?组件间通信父子通信父→子:props子→父:events($emit)兄弟通信:eventBus跨级通信:eventBus不同组件间通信常用的方式如上所示,详细总结请看:https

2020-05-23 12:09:30 468

原创 用一些简单的实例总结Vue组件间通信

父子通信props父组件<template> <div id="app"> <my-comone :parentmsg="msg"></my-comone> </div></template><script>import Comone from './components/Comone.vue'export default { name: 'App', data() { retu

2020-05-19 18:57:21 709

原创 Vue源码学习笔记3—数据绑定

分析准备数据绑定一旦data中某个属性更新,页面上对应使用了该属性的节点都会更新。数据劫持在Vue中使用数据劫持来实现数据绑定。数据劫持的基本思想:给data中的所有属性提供set方法,set方法监视data属性中的变化,一旦发生变化就去更新界面数据绑定与数据代理简单的的理解:通过vm对象来代理data对象中所有属性的操作来实现数据代理。通过给data中的所有属性提供set方法,set方法监视data属性中的变化(数据劫持)来实现数据绑定。关于数据代理的,可看我写的另一篇:四个重

2020-05-17 11:27:14 413

原创 Ajax的学习笔记2——跨域问题

Ajax请求限制Ajax只能向自己的服务器发送请求,这是因为浏览器的同源策略限制。同源什么是同源如果两个 URL 的 protocol、port (如果有指定的话)和 host 都相同的话,则这两个 URL是同源。这个方案也被称为“协议/主机/端口元组”,或者直接是 “元组”。图文来源:https://developer.mozilla.org/zh-CN/docs/Web/Security/Same-origin_policy同源的目的同源政策是为了保护用户信息的安全,防止恶意的网站窃

2020-05-13 18:57:44 341

原创 Ajax的学习笔记1

(What)什么是AjaxAJAX = Asynchronous JavaScript and XML(异步的 JavaScript 和 XML)。指的是通过JavaScript 的异步通信,从服务器获取 XML 文档从中提取数据,再更新当前网页的对应部分,而不用刷新整个网页。简单理解:不刷新页面的情况下,向服务端发送请求,和服务端进行交互,从而更改页面中的数据或者状态。允许浏览器与服务器通信而无需刷新页面的技术称作Ajax。(Why)为什么要用Ajax提高用户浏览网站的体验Aj

2020-05-09 16:02:37 296

原创 Vue源码学习笔记2—模板解析

分析准备[ ].slice.call(lis):将伪数组转换为真数组 const lis = document.getElementsByTagName('li') const lis2 = Array.prototype.slice.call(lis) console.log(lis2 instanceof Array) //true ...

2020-05-07 19:13:49 355

原创 Vue源码学习笔记1—数据代理

数据代理分析准备Object.defineProperty(obj, prop, descriptor)该方法会直接在一个对象上定义一个新属性,或者修改一个对象的现有属性,并返回此对象。configurable :属性的描述符是否够被改变enumerable :是否可以枚举value :该属性对应的值writable :属性的值是否可以修改get :回调函数,根据其他相关的属...

2020-05-05 17:08:34 282

原创 再学——图解原型链

原型链初始知识点prototype与constructor构造函数与它的原型对象有相互引用的关系什么是相互引用?构造函数中有属性prototype可以找到原型对象,原型对象中有属性constructor可以找到构造函数。prototype与__proto__对象的隐式原型的值为其构造函数的显式原型的值函数的prototype属性:在定义函数时自动添加的,默认值是一个空Obj...

2020-04-30 16:34:02 246

原创 进程机制与事件机制

进程与线程进程程序的一次执行,它占有一片独有的内存空间。可以通过windows任务管理器查看进程。一个进程中至少有一个运行的线程(主线程):进程启动后自动创建一个进程中可以同时运行多个线程,我们会说程序是多线程运行的一个进程内的数据可以供其中的多个线程直接共享,多个进程之间的数据时不能直接共享的多进程:一个应用程序可以同时启动多个实例运行线程线程是进程内的一个独立执行单元,...

2020-04-12 17:02:06 637

原创 面向对象:对象创建与继承

对象创建模式Object构造函数模式先创建Object对象,再动态添加属性/方法适用场景:起始时不确定对象内部数据问题:语句太多 var p = new Object(); p.name = 'kk'; p.age = 20; p.setName = function(name) { this.na...

2020-04-11 15:43:31 295

原创 执行上下文(栈)、作用域(链)

执行上下文与执行上下文栈执行上下文首先按照代码的位置分类可以分成两种:全局代码以及函数(局部)代码。全局执行上下文在执行全局代码前将window确定为全局执行上下文对全局数据进行预处理var定义的全局变量:undefined,添加为window的属性function声明的全局函数:赋值(fun),添加为window的方法this:赋值(window)开始执行全局代码函...

2020-04-10 16:57:43 270

原创 简单认识JavaScript中的闭包

(What)什么是闭包?理解一:闭包是嵌套的内部函数理解二:闭包是包含被引用变量(函数)的对象(存在与嵌套的内部函数中) function fn1() { var a = 2; function fn2() { console.log(a); } return fn2 } fn1...

2020-04-09 12:15:18 828 2

原创 简单认识JavaScript中的原型与原型链

一些预备知识每个函数都有一个prototype属性(显式原型),在定义函数时自动添加,它默认指向一个Object空对象(原型对象)。每个实例对象都有一个__proto__(隐式原型),创建对象时自动添加。原型对象中有一个属性constructor,它指向函数对象函数的所有实例对象自动拥有原型中的属性(方法)对象的隐式原型的值为其对应构造函数的显式原型的值一道简单的例题 fu...

2020-04-07 20:02:43 354

原创 flex布局

<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=deice-width, initial-scale=1.0"> <title>flex</ti...

2020-03-22 16:03:54 258 1

原创 动画以及2D与3D变形

Animation(动画)思维导图区分关键帧周期以及动画周期、动画内属性以及动画外属性代码例子代码<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=deice-wi...

2020-03-21 17:58:12 333

原创 CSS3的过渡及实现扇形导航

transition(过渡)transition-property:过渡属性的名称transition-duration:过渡动画所需的时间transition-timing-function:变化速度可以不断改变transition-delay:延迟时间注意:第一个可以被解析成时间的值会赋值给transition-duration在元素首次渲染还没有完成的情况下,是不会触发过...

2020-03-19 17:45:13 455

原创 CSS3的学习笔记——UI方案

2020-03-17 20:36:45 230

原创 CSS选择器总结

一些简单的问题CSS的全称是什么?答:Cascading Style Sheet(层叠样式表)样式表的组成答:样式表由一个个的规则组成。而规则由选择器和声明块组成。声明块则由CSS属性和CSS属性值组成,由下图所示。浏览器读取编译CSS的顺序答:从右往左选择器的思维导图参考文献https://www.w3.org/TR/selectors...

2020-03-15 16:07:20 265

原创 Canvas学习笔记及像素操作——实现马赛克

使用图片window.onload = function() { //获取画布 var canvas = document.querySelector('#test') //检查支持性 if (canvas.getContext) { //获取画笔 var ctx = canv...

2020-03-13 14:56:58 294

原创 Canvas曲线与变换实现会动的钟表

Canvas曲线与变换曲线arc(x,y,radius,starAngle,endAngle,anticlockwise)角度:(Math.PI/180)*degrees(度数)以(x,y)为圆心,radius为半径的圆弧,从startAngle开始到endAngle结束的弧度,按照anticlockwise给定的方向(true:顺时针(默认)、false:逆时针)ctx.begin...

2020-03-11 16:33:55 246

原创 Canvas基础及签名案例

Canvas基础canvas用于通过JavaScript来绘制图形canvas只有两个属性—width和height(默认:width:300px,height:150px)window.onload = function() { //获取画布 var canvas = document.querySelector('#test') /...

2020-03-10 13:03:14 298

原创 Node.js的学习笔记2——Buffer、文件系统

Buffer缓冲区Buffer和数组的结构的非常类似,Buffer是用来存储二进制数据的 var str = "Hello 缓冲区" var buf = Buffer.from(str) console.log(buf) //<Buffer 48 65 6c 6c 6f 20 42 75 66 66 65 72> console.log(str.length) //字...

2020-03-07 15:30:51 270

原创 Node.js的学习笔记1——模块化、npm

模块化在Node中,一个js文件就是一个模块。模块化的好处:降低程序之间的耦合性、方便代码复用。当Node在执行模块中的代码时function (exports, require, module, __filename, __dirname) {...}require()在Node中,通过require()函数来引入外部的模块。HelloNode.jsconsole.log(...

2020-03-06 18:03:42 261

原创 Promise的学习笔记4——自定义Promise

1. 整体结构/** * 自定义promise函数模块:IIFE */(function (window) { /** * Promise构造函数——excutor:执行器函数(同步) */ function Promise(excutor) { } /** * Promise原型对象的then()方法 */ ...

2020-03-04 12:56:12 321

原创 Promise的学习笔记3——async与await、宏队列与微队列

async与awaitasync函数的返回值为promise对象await右侧的表达式一般为promise对象,但也可以是其它的值注意:await必须写在async函数中,但async函数中可以没有await function test1() { return new Promise((resolve, reject) => { ...

2020-03-03 19:08:11 528

原创 Promise的学习笔记2

1. 抛出异常也可改变Promise的状态除了resolve(value)和reject(reason)可以改变promise的状态以外,通过抛出异常也可以将promise状态由pending变为rejected。 const p = new Promise((resolve, reject) => { throw 0 // throw new Er...

2020-03-02 11:25:40 271

原创 Promise的学习笔记1

(What)什么是Promise?Promise是异步编程的新的解决方案,比起旧的解决方案(回调)更合理更强大。从语法上来说:Promise是一个构造函数从功能上来说:Promise对象用来封装一个异步操作并可以获取其结果Promise的状态改变调用resolve函数来将promise当前状态pending(进行中)改成fulfilled(已成功)调用reject函数...

2020-02-29 18:49:13 452

原创 ES6箭头函数常见问题

箭头函数:(参数)=>{函数体}下面来看一道题目 let test = { name: 'kk', say: function () { console.log(this.name, this); } } test.say() //kk {...

2020-02-28 15:14:54 473 1

原创 数组遍历的方法以及优势和缺点

for循环 const arr = [1, 2, 3, 4, 5, 6] for (let i = 0; i < arr.length; i++) { console.log(arr[i]) }forEach const arr = [1, 2, 3, 4, 5,6] arr.forE...

2020-02-27 16:41:07 1400

原创 var、let、const的区别

var、let、const的区别1.var可以重复定义,let和const不可以 var a = 1;var a = 2;console.log(a) //2 let a = 1;let a = 2;console.log(a) const a = 1;const a = 2;console.log(a) //Iden...

2020-02-27 11:33:14 601

空空如也

空空如也

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

TA关注的人

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