- 博客(57)
- 收藏
- 关注
原创 ES6学习笔记
1. let 与var区别不同之处: —- let变量所在的代码块内有效,而var没有块级作用域的概念,只有全局变量和局部变量的概念; —- let声明的变量不存在变量提升,未声明变量使用变量会报错,var 声明的变量存在变量提升; —- let存在暂时性死区;暂时性死区的本质就是,只要一进入当前作用域,所要使用的变量就已经存在了,但是不可获取,只有等到声明变量
2017-09-04 22:36:38
489
原创 今日头条一面面经
从http://toutiao.com到http://md.toutiao.com进行ajax请求,这个算是跨域吗?服务器端会接收到什么,跨域请求; 2.算法题:求最大和的连续子数组; 3.智力题:有四张红色的牌和4张蓝色的牌,主持人先拿任意两张,再分别在A、B、C三人额头上贴任意两张牌,A,B,C三人都可以看见其他额头上的牌,看完后让他们猜到自己额头上是什么颜色的牌,看完后让他们猜自己额头上是
2017-09-03 16:24:16
2855
原创 CSS合集
position属性 三种定位机制:普通流,浮动和绝对定位。 position属性分别为static|relative|absolute|fixed|sticky|inherit static为元素默认属性,没有定位(忽略z-index,left,bottom,right,top声明) relative是相对于自身原本的位置进行偏移,可设置left,bottom等属性进行
2017-08-29 22:48:17
787
原创 吉比特笔试之走格子游戏
1.题目描述 2.解题思路: 求从左上角移动到右上角需要多少个行动力,可以解释为在走完最后一个房间的时候血量至少要剩下1,因为最后的状态可以当成是初始状态,由后往前依次决定在每一个位置至少要有多少行动力, 这样一个位置的状态是由其下面一个和和左边一个的较小状态决定.状态方程为: dp[i][j] = min(dp[i+1][j], dp[i][j+1]) - dungeon[i,
2017-08-27 21:50:27
2482
原创 bind&call&apply
1.改变this指向var a = { text: 1, alert: function () { console.log(this.text) }};function b(cb) { cb();}b(a.alert);针对上述题,毫无疑问输出undefined,因为this指向window,如何让函数输出1,这里毫无疑问是改变this指向,即可以用bind,call
2017-08-25 10:20:52
377
原创 数组常用方法
转换方法 valueOf():返回最适合该对象类型的原始值; toString(): 将该对象的原始值以字符串形式返回。这两个方法一般是交由JS去隐式调用,以满足不同的运算情况。在数值运算里,会优先调用valueOf(),如a+ b;在字符串运算里,会优先调用toString(),如alert(c).栈方法 栈方法主要是用于出栈和入栈; array.push():该方法返
2017-08-23 17:23:31
874
原创 同步与异步,阻塞和非阻塞的区别
同步与异步 同步与异步关注的是消息通信机制。 同步即在发送一个调用请求后,在没有得到结果之前,请求不返回。即请求者主动等待请求的结果。 异步则是请求发送成功之后,这个调用直接返回,无需等待结果,被调用者通过状态来通知请求者,后回调函数处理这个调用。阻塞和非阻塞 阻塞和非阻塞关注的是程序在等待调用结果(消息,返回值)时的状态 阻塞调用是指在调用结果返回之前,线程会被挂起,不继
2017-08-22 10:02:40
422
原创 负载均衡
HTTP重定向负载均衡 http重定向服务器是将根据用户的HTTP请求计算一台真正的Web服务器地址,并将该Web服务器地址写入HTTP重定向响应中返回给用户服务器。DNS域名解析负载均衡 在DNS服务器中配置多个记录,每次域名服务请求都会根据负载均衡算法计算不同的IP地址返回,这样A记录中配置的多个服务器就构成了一个集群,并可以实现负载均衡。优点是将负载均衡的工作交给DNS,且DNS支持地
2017-08-21 22:13:55
351
原创 jQuery源码之DOM操作
jQuery针对于DOM操作的方法主要有:append、prepend、before、after、replaceWith,appendTo,prependTo,insertBefore、insertAfter、replaceAll$('.inner').after('<p>helo</p>')//after:即在当前节点后面插入一个兄弟节点after:function () { return
2017-08-20 22:17:05
418
原创 左边定宽,右边自适应宽度布局
浮动布局 margin+浮动定位<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Title</title> <style> *{ margin: 0; padding:0; } #lef
2017-08-10 20:11:27
467
原创 CSS保持长宽比
CSS保持长宽比,主要是用于响应式设计的iframe、img、video之类的元素。关于实现长宽比,有以下几种方案:垂直方向的padding 主要是利用padding-top或者padding-bottom的百分比来实现容器长宽比。padding的百分比值是根据容器的width来计算的。且容器内所有元素都需要采用position:absolute。padding&calc() 采用的是pa
2017-08-09 20:42:44
4173
原创 前端面试题集锦三
浏览器怎么匹配某个选择器? 从后往前判断,浏览器先产生一个元素集合,这个集合往往由最后一个部分的索引产生,然后向上匹配,如果不符合上一部分,就把元素从集合中删除,直到整个选择器都匹配完。还在集合中的元素就匹配这个选择器了。类似于body.ready #wrappper > .lol233 先把所有class中有lol233的元素拿出来组成一个集合,然后上一层,对每一个集合中的元素,如果元素的pa
2017-08-07 21:19:24
415
原创 Bootstrap相关特性
Bootstrap为什么是移动设备优先 当不加媒体查询样式时默认的是超小屏幕(<768px)。也就是对应于移动设备上的样式,所以称之为移动设备优先。栅格系统 在栅格系统中,是通过媒体查询的方式来创建关键的分界点阈值。系统自动分为12格。
2017-08-07 20:32:00
616
原创 HTTP2新特性
多路复用 多路复用允许同时通过单一的HTTP/2连接发起多重的请求-响应消息。合并多个请求为一个的优化将不再适用。且图片请求的优先级要低于CSS和SCRIPT. 首部压缩 首部压缩通过HPACK移除了请求中的首部,通过很少的IP package,承载数十个乃至上百个请求,更符合最小数据量的理想化原则。主要步骤: (1) HTTP/2在客户端和服务器端使用“首部表”来跟踪和存储
2017-08-07 19:39:01
664
原创 jquery源码解析之选择器实现
为什么$取得的对象要设计成数组的形式? jquery内部采用了一种“类数组对象”的方式作为存储结构,既可以像对象一样处理jQuery操作,也可以像数组一样使用push、pop、shift、sort、each、map等类数组的方法操作jquery对象。2.Sizzle选择器 支持九种方式的处理: // 1.$(document) // 2.$(‘<div>’) // 3.$(
2017-08-07 17:20:54
1539
原创 DOM常用操作
查找节点 通过ID查找DOM节点:getElementById 通过class属性查找:getElementsByClassName 通过标签名查找:getElementsByTagNames 通过指定名称查找:getElementsByName 匹配选择器,只返回匹配的第一个元素:querySelector() 匹配选择器,返回匹配的所有元素:querySelec
2017-08-07 12:40:43
322
原创 css继承和非继承属性
不可继承的:display、margin、border、padding、background、height、min-height、max- height、width、min-width、max-width、overflow、position、left、right、top、 bottom、z-index、float、clear、table-layout、vertical-align、page-brea
2017-08-06 11:55:53
436
原创 gulp与webpack区别
Gulp Gulp为了规范前端开发流程,实现前后端分离,模块化开发,版本控制,文件合并与压缩,mock数据等功能的一个前端自动化构建工具。Webpack webpack是前端资源模块化管理工具和打包工具。可以将许多松散的模块按照依赖和规则打包成符合生产环境部署的前端资源。还可以将按需加载的模块进行代码分隔,等需要时再异步加载。通过 loader的转换,任何形式的资源都可以视作模块,比如 Com
2017-08-04 21:32:21
2240
原创 webpack核心概念
1. Manifest webpack中runtime和manifest主要用于管理所有模块的交互,主要是用于连接模块化应用程序的所有代 码。runtime包含:在模块交互时,连接模块所需的加载和解析逻辑,包括浏览器中已加载模块的连接以及懒加载模块的执行连接。 管理模块交互的流程: 当编译器(compiler)开始执行、解析和映射应用程序时,它会保留所有模块的详细要点。这个
2017-08-04 15:24:01
628
原创 Vue,react,angular三种框架比较
1.Vue&&React Vue与react比较,相同之处在于: - 都使用了virtual DOM - 提供了响应式和组件化的视图组件 - 将注意力集中在核心库,而将其他功能如路由和全局状态管理交给相关的库在 性能方面,React中,某个组件发生变化,它会以该组件为根,重新渲染整个组件子树。而在Vue组件的依赖是在渲染过程中自动追踪的,所有能知道哪个组
2017-08-02 15:31:49
19739
原创 八月份前端面试经验
GET和POST区别,ajax请求的参数关于闭包的理解,项目中用的例子简介vue脚手架vue当网速较慢时,可以看到{{变量名}},是什么原因,怎么解决?vue注册全局组件?简介下Bootstrap?flex布局?
2017-08-02 14:31:13
484
原创 拼多多前端笔试题
那些操作会引起reflow?关于闭包的理解?关于ajax的请求?一个页面从输入URL后发生了什么?setTimeout和setTimeInterval的区别,以及内存分析?一个页面中的内容,文本内容是”shdlahdla98s*gjj”,将文本中的[“a”,”8”,”g”,”%”]数组中的值进行标红处理。 <script> var Op = document.getElem
2017-08-01 22:37:56
907
原创 数据库事务和锁
事务是作为单个逻辑工作单元执行的一系列操作,一个逻辑工作单元必须有四个属性:原子性,一致性,隔离性和持久性(ACID)属性。原子性是指事务的所有操作要么全部执行,要么全部不执行。一致性:事务在完成时,必须使所有的数据都保持一致状态。在相关数据库中,所有规则必须应用于事物的修改,以保持所有数据的完整性。隔离性:由并发事务所做的修改必须与任何其他并发事务所做的修改隔离。事务识别数据时所处的状态,要
2017-08-01 11:37:10
533
原创 Transact-SQL语言
数据定义语言(DDL) 主要是包括三种,创建,修改和删除数据库等用来创建新对象的语句。主要是针对于数据库对象进行操作 CREATE 用来创建新对象,包括表,数据库、视图,过程等常见数据库对象 ALTER 用来修改已有对象的结构 DROP 用于删除已有的对象。2. 数据操纵语言(DML) DML对数据只能执行以下四种操作:创建
2017-07-31 20:46:36
401
2
原创 数据库范式
数据库范式,是数据库设计中的一系列原理和技术,已减少数据库中数据冗余,增进数据的一致性。1NF 如果关系模式中所有属性的值域内每一个值都不可分,即称符合第一范式。2NF 在满足第一范式的基础上,所有记录都要和主键有完全依赖关系;如果有记录只和主键的一部分有关,就得把他们独立出来就变成了另一个资料表。3NF 在满足第二范式的基础上,所有记录都要和主键有完全依赖关系;要求一个数据库中不包含已
2017-07-31 20:24:36
258
原创 数据库高级检索技术
聚合函数 聚合即是对一组数据的值进行聚合运算得到聚合值,常用的聚合函数有HAVING()、compute() select name,age from studio where id = 3 compute avg(age) 使用compute的语句生成的表不存储于数据库,是将生成的结果附加到结果集的最后面。分组数据 主要是利用GROUP BY 将表中数据按指定的某列或者几列进
2017-07-31 14:18:11
2255
原创 ES6与ES5继承比较
1. 关于ES5寄生构造函数继承 /*寄生组合式继承*/function inHeritPrototype(SuperType,SubType) { var prototype=Object(SuperType);//创建对象 prototype.constructor=SubType;//增强对象 SubType.prototype=prototype;}fun
2017-07-28 11:36:43
1124
原创 Web安全知识
1. CRSF(跨站脚本伪造) 主要过程就是,用户登录A网站,通过验证产生cookie,在未登出A网站的情况下去访问危险,B网站,发出一条恶意的请求,浏览器发起会话的过程中发送本地保存的cookie到网站A,导致用户信息被盗用。 防范措施: 验证码:应用程序和用户进行交互过程中,特别是账户交易这种核心步骤,强制用户输入验证码,才能完成最终请求 ; Referer Che
2017-07-25 11:08:42
1161
原创 Server-Sent Events &&Web Sockets
Server-Sent Events(服务器发送事件) SSE主要是围绕只读Comet交互推出的API,用于创建向服务器的单向连接,服务器可以通过这个连接发送任意数量的数据,但是服务器响应的mine-type必须是text/event-stream。SSE支持短轮询,长轮询和HTTP流,且能在断开连接时自动确定何时连接。 API: 要先创建个事件流:var source = new Event
2017-07-24 10:46:14
433
原创 css之BFC
BFC定义:Block formatting context ,它是块盒子的布局发生,浮动互相交互的区域。主要是可以解决外边距合并,清除浮动,和布局。 什么情况下会触发BFC呢? 一个块格式化上下文包括创建它的元素内部的所有内容,除了被包含于创建新的块级格式化上下文的后代元素内的元素。 块格式化上下文对于定位 (参见 float) 与清除浮动 (参见 clear) 很重要。定位和清除浮动的
2017-07-23 11:38:15
281
原创 前端面试题集锦二
关于HTML相关问题:浏览器标准模式(standards mode)、几乎标准模式(almost standards mode)和怪异模式(quicks mode)之间区别是什么? 标准模式是指浏览器按W3C标准解析执行代码。怪异模式是指使用浏览器自己的方式解析,几乎标准模式的浏览器特性都是符合标准的,不标准的地方主要体现在处理图片间隙的时候。 Standards (标准)模式(也
2017-07-17 20:33:10
997
原创 常用排序算法汇总js版
//冒泡排序//比较前后两个,若前一个比后一个大,则交换位置function bubbleSort(array) { var length=array.length; for(var i = 0;i<length;i++){ for(var j = 0;j<length-1;j++){ if(array[j]>array[j+1]){
2017-07-14 21:09:00
310
原创 阿里笔试题之深度遍历dom树
题目 写一个traverse函数,输出所有页面宽度和高度大于50像素的节点。 2.代码分析 这里是采用递归的概念,遍历body节点下的每一个节点。 function traverse(oNode) { var aResult = []; oNode = oNode || document.body; if (oNode.style) {
2017-07-12 19:45:59
761
原创 正则表达式总结
处理正则表达式的方法有:regexp.exec(),regexp.test(),string.match(),string.replace(),string.search(),string.split(). 1.regexp.exec(string) exec方法主要是匹配regex和字符串string。它就会返回一个数组。 2.regexp.test(string) test方法是对
2017-07-12 16:42:51
289
原创 HTTP缓存机制
浏览器存在一个缓存数据库,存储缓存信息,在客户端第一次发送请求时,此时缓存数据库中没有对应的缓存数据,需要请求服务器,服务器返回后,将数据缓存至缓存服务器中,HTTP根据是否重新向服务器发送请求分类,有两种缓存机制:强制缓存和对比缓存。 相对于强制缓存下,请求数据时,直接请求缓存服务器,若存在缓存数据,则直接读取缓存服务器中数据,若没有,则请求服务器,后返回请求数据和缓存机制,后将数据和缓存机制存
2017-07-12 11:48:50
640
原创 关于继承
继承的几种方式原型链/*原型链*/ function SuperType() { this.property=true; } SuperType.prototype.getSuperValue=function () { return this.property; }; function SubType(){
2017-07-11 20:29:00
435
原创 HTTP状态码的管理
状态码: 1XX (信息性状态码)接收的请求正在处理 2XX (成功状态码)请求正常处理完毕 3XX (重定向状态码)需要进行附加操作已完成请求 4XX (客户端错误) 服务器无法处理请求 5XX (服务器错误) 服务器处理请求出错2XX200 OK 表示从客户端发来的请求在服务器端被正常处理了。 204 No Content 该状态码表示
2017-07-11 19:07:53
436
原创 前端面试题集锦一
1. prototype与_ proto _的关系是什么 创建的对象都具有_ proto _属性,可以成为隐式原型,这个连接存在于实例与构造函数的原型之间。虽然无法访问到该属性,但是可以通过isPrototypeOf()来确定对象之间是否存在这种关系。 同时只要创建一个新函数,就会自动得到一个prototype属性,这个属性指向函数的原型对象。同时也会得到一个constructor属性,
2017-07-11 17:28:23
412
原创 关于前端性能优化
前端优化性能是前端必经之路,优化性能可以极大地改善用户体验。可以从服务器和客户端两个方面进行优化. 服务器优化:减少HTTP请求 在请求资源时,应尽量合并图片、css和js,减少网络请求次数。加快页面的加载,优化手段有使用CSS sprites.使用CDN CDN(内容分发网络)是一组分布在不同地理位置上的Web服务器。用于更加有效地向用户发布网络。使用CDN可以减少用户响应时间,
2017-07-09 21:53:13
273
原创 javascript---bind的实现方法
bind函数主要是运用于绑定this的指向,原生实现方法即是通过给目标函数绑定作用域来实现bind方法。Function.prototype.bind=function (context) { var arg=Array.prototype.slice.call(arguments,1); var self=this; return function () {
2017-07-07 21:56:58
331
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人