- 博客(30)
- 收藏
- 关注
转载 面向对象编程
面向对象编程的5个原则: <1>单一职责原则 是指一个类或者模块应该有且只有一个去改变它的理由,这意味着一个类应该只有一项职责,并且该功能应该由这个类完全封装。 <2>开发封闭原则 一个类应该对扩展是开放的,但是对修改是封闭的.意味着一个实体允许在不改变它的源代码的前提下变更它的行为 <3>里氏替换原则 ...
2019-10-01 20:00:00
172
转载 React 使用链表遍历组件树
React 为控制UI的更新,提出了时间分片的概念,以达到三个目标:performing non-blocking rendering;applying updates based on the priority;pre-rendering content in the background. React 遍历Dom Tree: 1. updates state and ...
2019-09-07 21:32:00
426
转载 React diff 算法
React是web前端UI库,关注的是如何高效地根据数据渲染UI界面。virtual dom 与高效的diff算法的结合,使得当数据发生变更时,react 能通过简洁高效的算法找出dom中真正变更,同时根据变更进行dom操作渲染UI界面。 传统的根据一个树形结构到另外一个树形结构的装换操作是一个复杂且耗时的过程,一般时间复杂度会达到O(n^3),加上每个dom节点都是一个附带大...
2019-09-01 19:43:00
202
转载 JavaScript 对象操作
Object.defineProperty(obj, prop, descriptor)方法会直接在一个对象上定义一个新属性,或者修改一个对象的现有属性,并返回这个对象。 const freezeObj = Object.freeze(obj), Object.freeze()方法可以冻结一个对象,冻结后,不能对象freezeObj添加新的属性,不能修改其已有属性的值,不能删...
2019-07-13 19:34:00
152
转载 nginx 工作流程
NGINX 把http请求处理流程划分为11个阶段,逻辑细分,以模块为单位进行处理。各个阶段可以包含多个http模块,每个阶段以流水线的形式处理请求。这样的分层处理模式与计算机网络的7层模式类似,每个模块以正交的方式处理请求,带来了低耦合,模块之间的低耦合带来灵活性。 1. NGX_HTTP_POST_READ 接受到完整HTTP头部后的处理阶段,位于URI重写之...
2019-06-26 22:57:00
277
转载 React整洁的代码的一些原则
1. Model is everything models are the heart of your app. If you have models separated from th rest of your application, maintaince will be much easier,regradless of how complicated your appli...
2019-03-09 22:56:00
156
转载 async await 使用笔记
JavaScript的网络请求异步的,即网络请求不会阻塞当前 js 代码的继续执行,而是通过回调的方式,网络请求的代码块中注入回调函数,当网络请求完成,会触发相应的事件,通过触发事件来执行注册的回调函数。回调的执行时间是不确定的,因此会影响程序的执行逻辑,另一方面,如果回调依赖过多,或导致很深的回调嵌套,使代码的可读性和可维护性降低。 async await 是 es7 中的新...
2019-03-09 14:59:00
168
转载 webpack 打包过程及常用插件
前言 要理解webpack 首先明白三个概念:module,chunk,bundles,即输入,中间态,输出。 chunk: This webpack-specific term is uesd internallt to manage the bunding process. Bundles are composed out of chunks,of which there...
2018-12-16 14:39:00
339
转载 web worker 实践
1.web worker 在浏览器中JavaScript主线程与UI渲染线程是互斥的。即UI渲染线程会阻塞JavaScript线程的运行。 web worker允许创建工作线程,并可以与JavaScript主线程同时运行,可以让一些占用大量计算资源的计算在worker线程上运行。 worker线程的出现是为了,大量的计算占用javascript 主线程,导致 DOM操作...
2018-12-16 12:38:00
410
转载 10 个常用的 es6 特性
1. const and let 除了函数作用域之外,增加了块级作用域和常量。const 定义的绑定不可以修改,let定义的绑定在{ }不能访问。之前的 var 如果不在函数作用域内,相当于定义了一个全局变量,并且有变量提升(将变量的声明提升至所在函数的最前面)。2. 数组函数 新增了一些数组处理函数,可以更加方便的对数组进行操作。 let a ...
2018-07-15 16:35:00
130
转载 Vue双向数据绑定
0 引言 实现双向数据绑定的方法有: 1.发布者---订阅者模式(backbone.js) 2.脏值检查(Angular) 3.数据劫持(vue)1 Angular是通过脏值检测的方式对比数据是否有变更,来决定是否更新视图 最简单的的方式就是通过setInterval()定时轮询检测数据变动。 Angular的脏值检测只在指定的事件触发时进入脏...
2017-10-18 17:00:00
151
转载 JavaScript 对象创建及继承方式
前言: JavaScript 除了null和undefined之外,其他变量都可以当做对象使用。 JavaScript 的基本数据类型有:number boolean string null undefined ,其他所有值都是对象。 JavaScript 的 typeof 只能判断 number boolean string undef...
2017-10-18 15:16:00
124
转载 前端性能优化基本原理
1.加载优化 1.1 减少HTTP请求 (a)合并CSS,JavaScript (b)合并小图片,使用雪碧图(即将小图片合成一个小图片,加载后通过坐标获取各个小图片) 1.2 使用缓存 使用缓存可以减少向服务器发送的请求数,节省加载时间,所以所有静态资源都要在浏览器端设置缓存,并且尽量使用长cache (a) 缓存一切可缓存的资源 ...
2017-09-07 09:15:00
179
转载 前端所涉及到的网络知识
0 两个小知识点 <meta>提供了有关页面的元信息,比如针对搜索引擎和更新频率的描述和关键词。 Linux top 是Linux 下常用的性能分析工具,能实时显示系统中各个进程的资源占用情况,用途是看哪些进程最耗CPU资源,占用的内存最多。 top -P 按%CPU使用率排行,根据CPU使用百分比的的大小进行排序 -T 切换显示进...
2017-09-06 22:15:00
255
转载 浏览器的渲染原理
1.代码是如何变成网页的 <1>页面生成分为5步HTML 解析为 DOM Tree;Css 代码转化为CSS OM (css object model)DOM Tree 与 CSS OM 合成一颗渲染树生成页面布局,即将所有的渲染树所有节点进行页面合成将布局绘制到屏幕上 补充浏览器的渲染过程:JavaScript/CSS --&...
2017-09-06 16:53:00
150
转载 Node 入门<1>
1. Node JavaScript web服务器框架,主要特点:事件驱动,异步 I/O,强制不共享任何资源的单线程,单进程系统。 每一个node进程都构成网络应用中的一个节点。 左图是Chrome浏览器的大体框架,右图是Node大体框架。补充说明webkit是用c语言开发的浏览器内核。 浏览器的主要组件有:HT...
2017-09-06 12:43:00
136
转载 css 样式优先级
1.css CSS 样式重置的是一些默认带有margin值的元素,而 li 默认没有 margin 值。2.css 样式优先级 优先级是基于不同选择器组成的匹配元素规则。优先级高的css样式,将覆盖优先级低的css样式,成为最终dom元素在网页中显示的样式。(误区,简单认为定义顺序靠后的css样式会覆盖定义顺序在前的css样式)。 给元素添加的内联样式总会覆盖外部样...
2017-09-05 15:12:00
177
转载 z-index
1.概念 将网页看成一个三维空间,z-index相当于设置元素在z 轴上的坐标。因此有了3个概念:层叠上下文,层叠层,层叠次序; 层叠次序如下: 1>背景和边框:形成层叠上下文的元素的背景和边框,层叠上下文中最低等级。 2>负z-index值:层叠上下文内设置了负z-index的子元素。 3>块级元素:文档流中非行内非定位...
2017-09-05 14:50:00
137
转载 事件代理
1.事件代理 事件代理是指在父元素上注册事件回调函数,若在父元素容器内的子元素触发了该事件,则在父元素上响应该事件。即父容器代理了在其容器内所有子元素的事件处理,优点是:1>减少了事件绑定(只需要在父容器上绑定事件);2>动态变化的DOM结构仍然可以监听(父元素可以根据event.target.tagName 判断触发事件是哪个子元素)。2.浏览器差异 火狐 ...
2017-09-03 16:55:00
164
转载 XSS && CRLF && property&attribute
XSS cross-site scripting 跨站点脚本,为了避免与css冲突,命名为XSS。它是将恶意代码作为一个网页内容,这些恶意代码会注入到用户的浏览器中并执行,从而使用户受到攻击,常见的有窃取用户的cookie。对web服务器无直接危害。 解决方法: 在服务器端通过filter过滤检查提交参数的合法性。CRLF HTTP响应拆分漏洞,也...
2017-09-02 14:24:00
216
转载 webpack 学习笔记
1. 背景 前端已经从简单的页面展示逐渐向着大型的前端应用发展,自然前端应用的代码量以及各种资源都在不断地增加。如何解决浏览器快速显示,实现异步资源加载成为了一个要解决的问题。其次,随着前端代码量的增加,如何实现模块化开发或者多人写作并发开发,成为另外一个问题。当然,模块化开发才能实现模块化加载,如何整个前端代码都耦合在一起,很难实现异步加载。2. 解决方案...
2017-09-02 13:46:00
120
转载 web前端面试题
HTML• HTML5新增了哪些内容或API,使用过哪些 Html5 的目的是将互联网内容语义化,更好的为人类和机器阅读,同时更好的支持各种媒体的嵌入。 新的API: • HTML Geolocation //获取用户的地理位置 • HTML Drag and Drop • HTML Local Storage...
2017-06-18 21:59:00
334
转载 前端面试题
1. javascript的typeof返回哪些数据类型? number string function object undefined boolean2. 什么是盒子模型? 在一个html文档中,每一个元素都被标示为一个矩形的盒子;矩形盒子由外边距(margin),边框(border),内边距(padding),内容区域四部分组成。...
2017-06-13 17:21:00
130
转载 揭秘响应式web设计
0.引言响应式web设计的作用主要使网页能在不同小大的显示窗口下依然优雅。当前的显示窗口有pc,ipad,iphone以及一些其他的设备。不同的显示窗口的分辨率各不相同,如何在不同的分辨率的情况下使网页依然显示良好呢?1.流式布局应对不同窗口大小的最简单的方案就是做一个等比缩放布局。根据不同的窗口大小实现不同的缩放比例。创建等比缩放布局相对简单,就是通过设置显示栏的宽度值为...
2017-04-30 20:56:00
148
转载 Javascript 行为委托
JavaScript 与C++,Java的面相对象编程的语言不同。就像不懂Linux人,会创造一个蹩脚的linux一样,一些JavaScript的编程者,总在尝试利用JavaScript 去模拟传统的面向对象编程。传统的面相对象编程是利用继承和多态两种机制实现代码的复用。继承的实质就是对父类的复制;多态是对父类方法的重写,在调用这个方法时,会根据调用的情况选择合适的方法。...
2016-10-20 17:35:00
151
转载 JavaScript 函数调用的 this词法
函数调用时的this实际上是在函数被调用时发生绑定,它指向什么完全取决于函数在哪里被调用。 特例:当函数作为构造函数被调用时,即使用new 来构造一个新对象,会自动执行以下操作: 【1】创建一个新对象; 【2】这个新对象会被执行原型连接;(即新对象的__proto__会指向构造函数的prototype对象)...
2016-10-20 17:28:00
143
转载 Javascript 闭包
当函数在当前的词法作用域之外执行,函数可以记住并访问该函数所在的词法作用域时,就产生了闭包。当函数跳出当前的词法作用域之外,但是该函数的作用域链有对它所在的词法作用域的引用,这样采用标记--清除算法的Javascript垃圾回收机制,就能够从根部出发找到该词法作用域,因此,该词法作用域不会被垃圾回收。这样该块词法作用域可以和全局变量一样存储在内存中,直到没有引用指向该块词法...
2016-10-20 15:25:00
136
转载 Javascript 原型链
在JavaScript中,除了null,undefined外,所有的变量都可以当做对象使用。对象由函数创建,函数的原型链指向对象,函数也是一种对象,自己定义的函数由Fuction创建。每个函数都有一个prototype属性和隐藏属性__proto__,prototype的值为一个对象,对象里有一个constructor指向这个函数本身。除了JavaScript自带的Object...
2016-07-29 16:26:00
139
转载 理解css的BFC
BFC是CSS中一个看不见的盒子,(先理解CSS的盒子模型)。它的页面渲染方式与普通流的盒子模型不同,它决定了其子元素将如何定位(所用属于BFC的box 都默认左对齐),以及和其他元素的关系和相互作用 。如何才能形成BFC盒模型呢? 1.float 属性值不为none; 2.position 属性值不为 stati...
2016-07-10 21:58:00
148
转载 多模态检索之CCA算法
多模态检索主要是实现不同模态下的数据能相互检索,例如文本模态数据,和图像模态数据。要能实现他们之间的相互检索,首先要是它们相互关联起来。CCA·算法用于多模态检索步骤: 1)首先提取文本,图像各自的底层特征,也就是会得到不同维度矩阵。 2)将训练数据去中心化后,利用CCA算法将不同维度的数据映射到相同的子空间,然后使训练的文本和图像特...
2016-04-01 09:43:00
908
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅