自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

断了的弦的博客

前端大白

  • 博客(71)
  • 收藏
  • 关注

原创 fasterxml.jackson.databind.exc.InvalidDefinitionException 将对象转换为json报错处理

2018-11-01 13:43:52.241 ERROR 651080 --- [nio-8081-exec-1] o.a.c.c.C.[.[.[/].[dispatcherServlet]    : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request...

2018-11-01 14:00:53 1533

原创 css实现圆、三角形

 <div class="circular"> circular</div>* { padding: 0; margin: 0;}.circular{ width: 200px; height: 200px; border: solid 1px black; border-radius: 100%;}&l...

2018-09-16 17:23:47 454

原创 两列布局,三列布局的实现

一、两列布局1、利用BFC<div class="left"> left</div><div class="right"> right</div>* { padding: 0; margin: 0;}.left{ float: left; width: 200px; height: 80...

2018-09-14 18:43:52 843

转载 .vue文件的解析过程

参考:https://blog.csdn.net/weixin_38788947/article/details/76718402

2018-09-14 18:29:14 1478

转载 vue中v-for中key的作用

需要使用key来给每个节点做一个唯一标识,Diff算法就可以正确的识别此节点,找到正确的位置区插入新的节点。参考:https://www.cnblogs.com/zhumingzhenhao/p/7688336.html...

2018-09-14 18:13:41 2619

转载 vue-router实现原理

1. hash 模式随着 ajax 的流行,异步数据请求交互运行在不刷新浏览器的情况下进行。而异步交互体验的更高级版本就是 SPA —— 单页应用。单页应用不仅仅是在页面交互是无刷新的,连页面跳转都是无刷新的,为了实现单页应用,所以就有了前端路由。类似于服务端路由,前端路由实现起来其实也很简单,就是匹配不同的 url 路径,进行解析,然后动态的渲染出区域 html 内容。但是这样存在一个问题...

2018-09-14 18:04:13 2348

原创 js类型转换

1、强制类型转换通过String(),Number(),Boolean()函数强制转换 var str=123; var str1='123'; console.log(typeof str); console.log(typeof str1); console.log(typeof String(str)); console.log(typeof Nu...

2018-09-13 10:32:24 147

原创 旋转数组的查找和最值

给定一个有序数组,如{1,2,3,4,5,6,7,8,9},我们将对这个数组进行选择,位置旋转未知。下面给出一个可能的旋转结果。如{4,5,6,7,8,9,1,2,3},我们可以理解为它从元素4位置开始旋转。之后给定一个指定的数字n,让我们从{4,5,6,7,8,9,1,2,3}这个数组中找出它的位置,要求时间复杂度尽可能的低。 观察数组可以得到的信息:1.拐点的左右两边都是一个有序的...

2018-09-12 18:46:53 335

原创 html js css实现九九乘法表

效果图:HTML:<body><div id="main"></div></body>CSS:.row{ text-align: center; width: 800px; margin: 0 auto;}.col{ border: 1px solid #000000; di...

2018-09-12 15:37:09 3246

转载 js内存分配机制

简介每种编程语言都有它的内存管理机制,比如简单的C有低级的内存管理基元,像malloc(),free()。同样我们在学习JavaScript的时候,很有必要了解JavaScript的内存管理机制。 JavaScript的内存管理机制是:内存基元在变量(对象,字符串等等)创建时分配,然后在他们不再被使用时“自动”释放。后者被称为垃圾回收。这个“自动”是混淆并给JavaScript(和其他高级语言...

2018-09-12 11:18:32 3772 4

转载 如何实现响应式布局

首先,在网页代码的头部,加入一行viewport元标签。<meta name="viewport" content="width=device-width,initial-scale=1.0,maximum-scale=1.0,minimum-scale=1.0,user-scalable=no" />viewport是网页默认的宽度和高度,上面这行代码的意思是,网页宽度默认...

2018-09-11 21:49:22 645

原创 vue的生命周期

所有的生命周期钩子自动绑定 this 上下文到实例中,因此你可以访问数据,对属性和方法进行运算。这意味着你不能使用箭头函数来定义一个生命周期方法 (例如 created: () => this.fetchTodos())。这是因为箭头函数绑定了父上下文,因此 this 与你期待的 Vue 实例不同,this.fetchTodos 的行为未定义。1、beforeCreate 在实...

2018-08-17 14:55:25 179

原创 js的垃圾回收机制

JavaScript具有自动垃圾收集机制,也就是说执行环境会负责管理代码执行过程中的内存。这种垃圾回收机制的原理其实很简单:找出那些不再继续使用的变量,然后释放其占用的内存。为此,垃圾收集器会按照固定的时间间隔,周期地执行这一操作。1、标记清除法最常用的垃圾收集方式。垃圾收集器在运行的时候会给存储在内存中的所有变量都加上标记,然后它会去掉环境中的变量以及被环境中的变量引用的变量的标记。而在...

2018-08-17 11:09:00 224

转载 CDN加速

CDN概况CDN的全称是Content Delivery Network,即内容分发网络。CND加速主要是加速静态资源,如网站上面上传的图片、媒体,以及引入的一些Js、css等文件。CND加速需要依靠各个网络节点,例如100台CDN服务器分布在全国范围,从上海访问,会从最近的节点返回资源,这是核心。CND服务器通过缓存或者主动抓取主服务器的内容来实现资源储备。下面这张图...

2018-08-16 19:39:06 9298

原创 浏览器页面渲染过程

浏览器渲染页面的一般过程:1.浏览器解析html源码,然后创建一个 DOM树。在DOM树中,每一个HTML标签都有一个对应的节点,并且每一个文本也都会有一个对应的文本节点。DOM树的根节点就是 documentElement,对应的是html标签。2.浏览器解析CSS代码,计算出最终的样式数据。构建CSSOM树。对CSS代码中非法的语法它会直接忽略掉。解析CSS的时候会按照如下顺序来定义优...

2018-08-16 16:51:30 4798

转载 Flex布局

采用 Flex 布局的元素,称为 Flex 容器(flex container),简称"容器"。它的所有子元素自动成为容器成员,称为 Flex 项目(flex item),简称"项目"。原文:http://www.ruanyifeng.com/blog/2015/07/flex-grammar.html...

2018-08-16 16:17:46 131

转载 node.js

简单的说 Node.js 就是运行在服务端的 JavaScript。Node.js 是一个基于Chrome JavaScript 运行时建立的一个平台。Node.js是一个事件驱动I/O服务端JavaScript环境,基于Google的V8引擎,V8引擎执行Javascript的速度非常快,性能非常好。教程:http://www.runoob.com/nodejs/nodejs-tut...

2018-08-16 16:07:46 152

转载 Sass和Less

什么是Sass和Less?      Sass和Less都属于CSS预处理器,那什么是 CSS 预处理器呢?       CSS 预处理器定义了一种新的语言,其基本思想是,用一种专门的编程语言,为 CSS 增加了一些编程的特性,将 CSS 作为目标生成文件,然后开发者就只要使用这种语言进行CSS的编码工作。       转化成通俗易懂的话来说就是“用一种专门的编程语言,进行 Web 页...

2018-08-16 15:40:12 1049

原创 ES6 解构赋值

一 我们为什么要使用解构在学习ES6新的特性解构赋值之前,我们先来看看为什么要使用解构,以前如果我们需要获取对象或者数组里面的数据,并且把它们存入数组,需要写很多代码。如下const person = { name: 'little bear', age: 18, sex: '男'}let age = person.agelet name = person.namel...

2018-08-16 15:32:00 204

原创 css中的单位

尺寸单位 描述 % 百分比 in 英寸 cm 厘米 mm 毫米 em 1em 等于当前的字体尺寸。 2em 等于当前字体尺寸的两倍。 例如,如果某元素以 12pt 显示,那么 2em 是24pt。 在 CSS 中,em 是非常有用的单位,因为它可以自动适应用户所使用的字体。 ex 一个 e...

2018-08-16 15:01:47 343

转载 TCP协议中的三次握手四次挥手

方案TCP建立连接为什么是三次握手,而不是两次或四次?TCP,名为传输控制协议,是一种可靠的传输层协议,IP协议号为6。顺便说一句,原则上任何数据传输都无法确保绝对可靠,三次握手只是确保可靠的基本需要。举个日常例子,打电话时我们对话如下: 一、TCP报文格式  TCP报文格式图:   上图中有几个字段需要重点介绍下:  (1)序号:Seq序号,占32位,...

2018-08-16 12:08:29 182

原创 TCP/IP四层模型与OSI参考模型

TCP/IP四层模型:1.链路层(数据链路层/网络接口层):包括操作系统中的设备驱动程序、计算机中对应的网络接口卡2.网络层(互联网层):处理分组在网络中的活动,比如分组的选路。3.运输层:主要为两台主机上的应用提供端到端的通信。4.应用层:负责处理特定的应用程序细节。 网络层与运输层的区别:  在TCP/TP协议族中,  网络层IP提供的是一种不可靠的服务。它...

2018-08-16 11:24:46 8322

原创 进程和线程的区别

进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位。线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位。 进程和线程的关系:(1)一个线程只能属于一个进程,而一个进程可以有多个线程,但至少有一个线程。(2)资源分配给进程,同一进程的所有线程共享该进程的所有资源。(3)处理机分给线程,...

2018-08-15 18:09:20 131

转载 返回顶部js插件的编写

【1】锚点  使用锚点链接是一种简单的返回顶部的功能实现。该实现主要在页面顶部放置一个指定名称的锚点链接,然后在页面下方放置一个返回到该锚点的链接,用户点击该链接即可返回到该锚点所在的顶部位置<body style="height:2000px;"><div id="topAnchor"></div><a href="#topAnchor&quot

2018-08-15 18:02:54 216

转载 js原型链

只要是对象就有原型, 并且原型也是对象, 因此只要定义了一个对象, 那么就可以找到他的原型, 如此反复, 就可以构成一个对象的序列, 这个结构就被成为原型链JS中原型链,说简单也简单。首先明确: 函数(Function)才有prototype属性,对象(除Object)拥有__proto__。首先,我画了一张图。所谓原型链,指的就是图中的proto这一条指针链!原型链的顶层...

2018-08-15 17:16:00 1235

转载 基本的排序算法

我们通常所说的排序算法往往指的是内部排序算法,即数据记录在内存中进行排序。排序算法大体可分为两种:一种是比较排序,时间复杂度O(nlogn) ~ O(n^2),主要有:冒泡排序,选择排序,插入排序,归并排序,堆排序,快速排序等。另一种是非比较排序,时间复杂度可以达到O(n),主要有:计数排序,基数排序,桶排序等。常见比较排序算法的性能如下:冒泡排序:依次比较相邻两个元素...

2018-08-14 17:58:19 531

转载 vue的双向数据绑定实现原理

vue数据双向绑定是通过数据劫持结合发布者-订阅者模式的方式来实现的,那么vue是如果进行数据劫持的,我们可以先来看一下通过控制台输出一个定义在vue初始化数据上的对象是个什么东西。var vm = new Vue({ data: { obj: { a: 1 } }, created: function () {...

2018-08-09 16:41:08 337

原创 MVC、MVP、MVVM架构模式的区别

MVCMVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。MVC被独特的发展起来用于映射传统的输入、处理和输出功能在一个逻辑的图形化用户界面的结构中。...

2018-08-09 12:05:29 388

转载 集成ajax上传技术 大文件/超大文件前端切割上传,后端进行重组

概念   js新的技术中增加了File对象(实际上就是blob的具体化的一个东西),设计规范参考这里2个 File API 规范 和 FileSystem API 规范  后台二进制文件重组    1. 创建空的文件流    2. 读取临时存储切割文件的文件夹,获得所有文件路径  切记:一定要按顺序进行排序,否则组合文件将会错误    3. 按顺序将切割小文件读取成二进制流,写...

2018-08-09 10:50:59 2020

转载 js前端文件下载

一、HTML与文件下载如果希望在前端侧直接触发某些资源的下载,最方便快捷的方法就是使用HTML5原生的download属性,例如:<a href="large.jpg" download>下载</a>具体介绍可参考我之前的文章:“了解HTML/HTML5中的download属性”。但显然,如果纯粹利用HTML属性来实现文件的下载(而不是浏览器打开或浏览),...

2018-08-09 10:37:52 17545 1

转载 js的数据类型

基本类型ECMScript中有5种简单的数据类型(也称为基本数据类型):Undifined,Null,Boolean,Number和String。还有一种复杂数据类型——Object。typeof操作符可以检测给定变量的数据类型var message="dd";console.log(message);//'String'引用类型Object,Array,Date,RegE...

2018-08-08 21:59:13 224

转载 webpack打包js

Webpack 是一个前端资源加载/打包工具。它将根据模块的依赖关系进行静态分析,然后将这些模块按照指定的规则生成对应的静态资源。在代码实践之前,先说一写webpack的基础知识。1、为什要使用WebPack现今的很多网页其实可以看做是功能丰富的应用,它们拥有着复杂的JavaScript代码和一大堆依赖包。为了简化开发的复杂度,前端社区涌现出了很多好的实践方法模块化,让我们可以把复...

2018-08-08 20:31:08 408

原创 js数组去重

// 借助新数组 通过indexOf方判断当前元素在数组中的索引如果与循环的下标相等则添加到新数组中var arr = [1,23,1,1,1,3,23,5,6,7,9,9,8,5];function rep(arr) { var ret = []; for (var i = 0; i < arr.length; i++) { if (arr.index...

2018-08-08 20:27:27 182

原创 js数组的基本操作

shift:删除原数组第一项,并返回删除元素的值;如果数组为空则返回undefined,改变原数组。var a = [1,2,3,4,5]; var b = a.shift(); //a:[2,3,4,5] b:1 unshift:将参数添加到原数组开头,并返回数组的长度,改变原数组注:在IE6.0下测试返回值总为undefined,FF2.0下测试返回值为7,所以这个方法的...

2018-08-08 20:21:28 147

转载 css实现未知大小的块状元素垂直水平居中

思路:子元素绝对定位,距离顶部 50%,左边50%,然后使用css3 transform:translate(-50%; -50%)优点:高大上,可以在webkit内核的浏览器中使用缺点:不支持IE9以下不支持transform属性<!DOCTYPE html><html lang="en"><head> <meta charset=...

2018-08-08 19:57:01 344

转载 https与http的区别

超文本传输协议HTTP协议被用于在Web浏览器和网站服务器之间传递信息,HTTP协议以明文方式发送内容,不提供任何方式的数据加密,如果攻击者截取了Web浏览器和网站服务器之间的传输报文,就可以直接读懂其中的信息,因此,HTTP协议不适合传输一些敏感信息,比如:信用卡号、密码等支付信息。  为了解决HTTP协议的这一缺陷,需要使用另一种协议:安全套接字层超文本传输协议HTTPS,为了数据传输的安...

2018-08-08 16:43:05 239

转载 CSS世界的结界——BFC

BFC的定义BFC 全称为 block formatting context,中文为“块级格式化上下文”。关于 BFC 各种特性什么的,说起来很啰嗦,而我喜欢用“ CSS 世界的结界”这种称谓概括BFC 的特性。“结界”这个词大家应该都理解的,指通过一些特定的手段形成的封闭空间,里面的人出不去,外面的人进不来,具有极强的防御力。 BFC 的特性表现如出一辙。大家请记住下面这个表现原则:如果...

2018-08-08 16:05:22 1485

原创 js跨域资源共享

同源策略同源策略是浏览器的一个安全功能,不同源的客户端脚本在没有明确授权的情况下,不能读写对方资源。只要协议、域名、端口有任何一个不同,都被当作是不同的域。跨域资源共享1、CORS基本思想:使用自定义的HTTP头部让浏览器与服务器进行沟通,从而决定请求或相应是否成功,还是失败。CORS原理:只需要向响应头header中注入Access-Control-Allow-Origin,...

2018-08-07 17:52:49 889

原创 js执行环境、作用域、作用域链、变量提升、函数提升

1.执行环境(execution context)  执行环境定义了变量和函数有权访问的其他数据,决定了他们各自的行为。每个执行环境都有与之对应的变量对象(variable object),保存着该环境中定义的所有变量和函数。我们无法通过代码来访问变量对象,但是解析器在处理数据时会在后台使用到它。  执行环境有全局执行环境(也称全局环境)和函数执行环境之分。执行环境如其名是在运行和执行代码...

2018-08-07 16:25:40 221

转载 css中的选择器及优先级

CSS3 选择器在 CSS 中,选择器是一种模式,用于选择需要添加样式的元素。"CSS" 列指示该属性是在哪个 CSS 版本中定义的。(CSS1、CSS2 还是 CSS3。)选择器 名称 例子 例子描述 CSS .class 类选择器 .intro 选择 class="intro" 的所有元素。 1 #id id 选择器 ...

2018-08-07 15:08:22 160

空空如也

空空如也

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

TA关注的人

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