自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 设计模式

单例子模式 var singleton = function(fn) { var result; return function() { return result || (result = fn.apply(this, arguments)); };};var createMask = singleton(function() { return document...

2018-09-06 17:02:25 219

原创 算法题小try

 const mkList = n => n <= 2 ? [0, 1].slice(0, n) : mkList(n - 1).concat(2 * n - 3);const isPrim = n => Array.from({ length: n }).filter((_, i) => !(n % i)).length <= 2;const ...

2018-09-06 10:12:50 284

转载 VSCode快捷键

ctrl+shift+p显示命令面板ctrl+p快速打开ctrl+shift+n打开新窗口ctrl+shift+w关闭窗口 流量器的无痕模式ctrl+shift+n  alt+方向箭头 向箭头方向移动行shift+alt+方向箭头 向箭头方向复制行ctrl+shift+k删除行ctrl+enter在下面插入行ctrl+shift+enter在上面插入...

2018-05-11 19:50:56 366

原创 sticky-footer实现方式

绝对底部,或者说 Sticky Footer,是一种古老且经典的页面效果:当页面内容超出屏幕,页脚模块会像正常页面一样,被推到内容下方,需要拖动滚动条才能看到。而当页面内容小于屏幕高度,页脚模块会固定在屏幕底部,就像是底边距为零的固定定位。一、经典套路这种套路的思路是,给内容区域设置 min-height: 100%,将 footer 推到屏幕下方然后给 footer 添加 margin-top,其

2018-03-22 20:20:20 302

原创 用promise封装ajax操作的例子

var getJSON=function (url) { var promise=new Promise(function (resolve,reject) { var client=new XMLHttpRequest(); client.open("GET",url); client.onreadystatechange=handler;

2017-10-16 14:57:40 894

原创 http请求头(响应头)、http2、https

每个HTTP请求和响应都会带有相应的头部信息。默认情况下,在发送XHR请求的同时,还会发送下列头部信息:accept:浏览器能够处理的内容类型 accept-charset:浏览器能够显示的字符集 accept-encoding:浏览器能够处理的压缩编码 accept-language:浏览器当前设置的语言 connection:浏览器与服务器之间连接的类型 cookie:当前页面设置的任

2017-10-15 22:03:50 2054

原创 CSS多列

通过 CSS3,您能够创建多个列来对文本进行布局 - 就像报纸那样! 多列属性: column-count column-gap column-rule设置多列只需要将实际需要分列的文本放在div中就可以自动多列布局。CSS3 创建多列column-count 属性规定元素应该被分隔的列数CSS3 规定列之间的间隔column-gap 属性规定列之间的间隔...

2017-10-15 20:50:44 446

原创 CSS动画

<!DOCTYPE html><html><head> <style> div { width:100px; height:100px; background:red; position:relative; ...

2017-10-15 20:43:41 303

原创 map和foreach遍历的区别

1、map速度比foreach快2、map会返回一个新数组,不对原数组产生影响,foreach不会产生新数组,3、map因为返回数组所以可以链式操作,foreach不能。var ary = [12,23,24,42,1];var res = ary.forEach(function (item,index,input) { input[index] = item*10;})conso

2017-10-15 20:32:25 2129

原创 构造函数的继承(非构造函数的继承)

构造函数的继承一、 构造函数绑定第一种方法也是最简单的方法,使用call或apply方法,将父对象的构造函数绑定在子对象上,即在子对象构造函数中加一行:function Cat(name,color){  Animal.apply(this, arguments);  this.name = name;  this.color = color;} var cat1 = new Cat("大

2017-10-15 19:38:01 369

原创 鼠标拖拽功能实现

<!DOCTYPE html><html><head> <meta charset="utf-8"> <title>JS拖拽</title> <style> *{padding: 0; margin: 0; } .box{width: 100px;height: 100px;background: blue;position: absolu

2017-10-15 18:54:35 654

原创 数据库常考面试题

数据库的增删改查group by;内连接,左外连接;distinct事务的隔离级别;脏读,不可重复读,幻读索引:了解B+树索引,及使用索引的好处、坏处索引优缺点创建索引可以大大提高系统的性能 1. 通过创建唯一性索引,可以保证数据库中每一行数据的唯一性 2. 可以大大加快数据的检索速度,这是创建索引的最主要原因。 3. 可以加速表和表之间的连接,特别是在实现数据的参照完整性方面特别有意

2017-10-09 15:53:09 329

原创 vue-router实现分析

vue-router实现原理

2017-10-09 15:13:20 978

原创 技术之瞳-前端

前端开发涉及技术 1. 基础技术 HTTP、HTML、CSS、Javascript 2. 编程能力 数据结构和算法 正则表达式 3. 扩展技术 Node.js、前端框架、前端工程、数据可视化HTTP协议HTTP是互联网上应用最为广泛的一种网络技术,也是浏览器和服务器通信时采用的协议。在展示页面时,浏览器向服务端发起一个HTTP请求,以获得相应的网站数据,

2017-10-04 12:01:35 427

原创 vue简介

vuejs是什么vue本身具有响应式编程和组件化的特点。所谓响应式编程,即为保持状态和视图的同步,声明实例new Vue({data:data})后对data里面的数据进行了视图上的绑定,修改data里的数据,视图上的数据也会发生变化。 vue的组件化概念:“一切都是组件”,可以将任意封装好的代码注册成标签。Vue.component(‘example’,Example),可以在模板中以<exam

2017-09-28 19:19:40 731

原创 前端模块化

在ES6之前,社区制定了一些模块加载方案,最主要的有CommonJS和AMD两种,前者用于服务器,后者用于浏览器,ES6在语法层面上实现了模块功能,成为浏览器和服务器通用的模块解决方案。ES6模块的设计思想是尽量静态化,使得编译时就能确定模块的依赖关系,以及输入输出变量。CommonJS和AMD模块都只能在运行时确定这些东西。CommonJS模块是对象,输入时必须查找对象属性。通过整体加载fs模块,

2017-09-24 21:15:46 295

原创 如何实现对一个DOM元素进行深拷贝,包括它绑定的事件

如何实现?

2017-09-24 20:31:18 3797 1

原创 一个列表点击某一个返回它的index

<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Document</title> <script type="text/javascript"> window.onload=function(){ var list =document.getEl

2017-09-24 20:15:00 345

原创 Javascript中的new做了什么?

(1) 创建一个新对象; (2) 将构造函数的作用域赋给新对象(因此 this 就指向了这个新对象) ; (3) 执行构造函数中的代码(为这个新对象添加属性) ; (4) 返回新对象。var a=new A(); 1.构造函数拥有一个叫prototype的属性,这里即A.prototype,这个对象默认有一个属性constructor,他的值是这个构造函数A。2.javascript先创建一

2017-09-24 19:57:28 2159

原创 定宽+流动布局

&lt;!DOCTYPE html&gt;&lt;html&gt;&lt;head&gt; &lt;style&gt; aside{ width: 200px; height: 200px; background: #5A6A94; } section{ ...

2017-09-24 19:49:56 700

原创 javascript深复制

function clone(obj){ var o; switch(typeof obj){ case 'undefined':break; case 'string':o=obj+'';break; case 'number':o=obj-0;break; case 'boolean':o=obj;break; case 'object':

2017-09-23 11:08:48 262

原创 JS动画实现

实现动画的方案主要有6种:Javascript直接实现动画,可伸缩矢量图形(SVG)动画,CSS transition,CSS3 animation、Canvas动画、requestAnimationFrame。javascript实现<!DOCTYPE html><html><head> <style> .content{width: 100px;height: 100

2017-09-22 21:50:27 268

原创 等高布局

padding补偿法 首先把列的padding-bottom设为一个足够大的值,再把列的margin-bottom设一个与前面的padding-bottom的正值相抵消的负值,父容器设置超出隐藏,这样子父容器的高度就还是它里面的列没有设定padding-bottom时的高度,当它里面的任一列高度增加了,则父容器的高度被撑到它里面最高那列的高度,其他比这列矮的列则会用它们的padding-botto

2017-09-21 22:27:19 180

原创 面试知识点整理

new操作符都干了什么? 1.先创建了一个新的空对象 2.然后让这个空对象的proto指向函数的原型prototype 3.将对象作为函数的this传进去,如果return 出来东西是对象的话就直接返回 return 的内容,没有的话就返回创建的这个对象。

2017-09-19 21:26:14 302

原创 前端模块化AMD、CMD、CommonJS

知识点1:AMD/CMD/CommonJs是JS模块化开发的标准,目前对应的实现是RequireJs/SeaJs/nodeJs.知识点2:CommonJs主要针对服务端,AMD/CMD主要针对浏览器端,所以最容易混淆的是AMD/CMD。(顺便提一下,针对服务器端和针对浏览器端有什么本质的区别呢?服务器端一般采用同步加载文件,也就是说需要某个模块,服务器端便停下来,等待它加载再执行。而浏览器端要保证效

2017-09-18 10:48:26 555

原创 Javascript设计模式与开发实践(关于this/call/apply)

Javascript应用,设计模式,apply,call,bind,this的使用,高阶函数的使用

2017-09-17 16:31:21 334

原创 自动切换输入的焦点

<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>throttle</title> <style> </style></head><body><div id="myDiv"> Right click or ctrl+click</div><form id="for

2017-09-16 22:17:03 265

原创 Vue中的nextTick原理解析

nextTick的使用场景nextTick是全局vue的一个函数,在vue系统中,用于处理dom更新的操作。vue里面有一个watcher,用于观察数据的变化,然后更新dom,vue里面并不是每次数据改变都会触发更新dom,而是将这些操作都缓存在一个队列,在一个事件循环结束之后,刷新队列,统一执行dom更新操作。 通常情况下,我们不需要关心这个问题,而如果想在DOM状态更新后做点什么,则需要用到n

2017-09-16 16:05:04 5145

原创 MVVM实现原理(数据变更的实现)

手动触发绑定 手动触发指令绑定是比较直接的实现方式,主要思路是通过在数据对象上定义get()方法和set()方法。ES6 proxy实现,数据劫持,脏检查机制

2017-09-15 18:02:10 1328

原创 SPA单页应用的优缺点

单页Web程序的出现是富客户端发展的必然结果,但是该技术也是有些局限性,所以采用之前需要了解清楚它的优缺点。 1、优点: 1).良好的交互体验 用户不需要重新刷新页面,获取数据也是通过Ajax异步获取,页面显示流畅。 2).良好的前后端工作分离模式 单页Web应用可以和RESTful规约一起使用,通过REST API提供接口数据,并使用Ajax异步获取,这样有助于分离客户端和服务器端工作。

2017-09-15 16:25:06 4383

原创 浏览器应用基础

从打开浏览器输入一个网址到页面展示网页内容的这段时间,浏览器和服务器都发生了什么?1、在接收到用户输入网址后,浏览器会开启一个线程来处理这个请求,对用户输入的URL地址进行分析判断,如果是HTTP协议就按照HTTP方式来处理。 2、调用浏览器引擎的对应方法,比如WebView中的loadUrl方法,分析并加载URL地址 3、通过DNS解析获取该网站地址对应的IP地址,查询完成后连同浏览器的Coo

2017-09-12 09:26:19 362

原创 京东秋招笔试题汇总

首先给出第一个编程题:要求实现一个添加方法add,传入一个对象,对象有name和price属性,要求执行add方法后,列表中添加一行。实现bind方法,点击click按钮删除按钮所在的行。HTML和CSS已经给定了,如下://html部分<table id="jsTrolley"> <thead><tr><th>名称</th><th>价格</th><th>操作</th></tr></the

2017-09-09 10:03:22 536

原创 前端算法面试题汇总

数组去重function unique(arr) { const seen=new Map(); return arr.filter((a) => !seen.has(a)&& seen.set(a,1));}//orfunction unique(arr) { return Array.from(new Set(arr))}//or[...(new Set(ar

2017-09-07 20:25:56 1765

原创 SEO网站性能优化

搜索引擎工作原理 百度蜘蛛,爬行网页链接,搜索引擎数据库。若页面由JS或者flash生成,则检索不到内容。白帽SEO 网站标题、关键字、描述 网站内容优化 Robot.txt文件 网站地图 增加外链引用网站结构布局优化 合理规划站点结构:扁平化结构,层次结构越少越好,百度蜘蛛不愿意往下爬 1、控制首页链接数量: 太少:百度蜘蛛不能爬到网站内页,直接影响网站收入数量 太多:影响用户

2017-09-07 19:22:33 4438

原创 模式匹配算法以及KMP的javascript实现

暴力解决: 对主串的每一个字符作为子串开头,与要匹配的字符串进行匹配。对主串作大循环,每个字符开头做T的长度的小循环,直到匹配成功或全部遍历完为止。function Index(S,T) { var i=0; var j=0; while (i<S.length && j<T.length){ if(S[i]==T[j]){ ++i;

2017-09-06 22:42:43 285

原创 vue的生命周期

beforecreated:el 和 data 并未初始化 created:完成了 data 数据的初始化,el没有 beforeMount:完成了 el 和 data 初始化 mounted :完成挂载应用: beforecreate : 举个栗子:可以在这加个loading事件 created :在这结束loading,还做一些初始化,实现函数自执行

2017-09-04 16:08:23 220

原创 拼多多笔试总结

走过了拼多多的面试,又重新走向了笔试。顺便记录一下有意思的题目。 题目是这样的:设计一个函数mul,要你实现以下功能console.log(mul(1)(2)(3))//6 ; console.log(mul(2)(3)(4))//24;需要实现的功能就是输入三个参数,使三个参数相乘。 关键就在于每次都要return一个函数,代码见下:var mul = function(a){

2017-09-02 18:37:02 5407 2

原创 CSS居中及布局

CSS中的居中可分为水平居中和垂直居中。水平居中分为行内元素居中和块状元素居中两种情况,而块状元素又分为定宽块状元素居中和不定宽块状元素居中。下面详细介绍这几种情况。水平居中使用inline-block和text-aligh实现.parent{text-align: center;} .child{display: inline-block;} 优点:兼容性好;缺点...

2017-09-01 15:41:31 414

原创 HTML5 与 CSS3 新特性

根据CSS规范的规定,每一个网页元素都有一个display属性,用于确定该元素的类型,每一个元素都有默认的display属性值,比如div元素,它的默认display属性值为“block”,成为“块级”元素(block-level);而span元素的默认display属性值为“inline”,称为“行内”元素。div这样的块级元素,就会自动占据一定矩形空间,可以通过设置高度、宽度、内外边距等属性,来

2017-09-01 15:32:43 1703

原创 vue-router的使用及实现原理

前端路由是直接找到与地址匹配的一个组件或对象并将其渲染出来。改变浏览器地址而不向服务器发出请求有两种方式: 1. 在地址中加入#以欺骗浏览器,地址的改变是由于正在进行页内导航 2. 使用H5的window.history功能,使用URL的Hash来模拟一个完整的URL。当打包构建应用时,Javascript 包会变得非常大,影响页面加载。如果我们能把不同路由对应的组件分割成不同的代码块,然后当路

2017-08-29 21:35:40 69896 1

空空如也

空空如也

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

TA关注的人

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