自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

2197

前端新手,一起学习进步

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

原创 动态规划

动态规划:通常基于一个递推公式及一个或多个初始状态,当前子问题的解将由上一个子问题的解推出基本思想:要解决一个给定的问题,我们需要解决其不同部分(即解决子问题),再合并子问题的解以得出原问题的解,通常子问题非常相似,为此动态规划视图只解决每个子问题一次,从而减少计算量,一旦某个给定子问题的解已经算出来,则将其记忆储存,以便下次需要同一个子问题解值时直接查表1》斐波那契数列方法一:递归调...

2018-09-30 19:40:07 112

翻译 js精度问题(0.1+0.2;js浮点数双精度64位)

1》原因因为计算机内部的信息都是由二进制方式表示的,但由于某些浮点数没办法用二进制准确的表示出来也就带来了一系列问题将小数转换成二进制:整数部分:除2取余,若商不为0则继续对它除2,当商为0时则将所有余数逆序排序小数部分:乘2取整数部分,若小数不为0则继续乘2,知道小数部分为0将取出的整数位正序排序(若小数部分无法为0,根据有效位要求取得相应值)0.1的二进制:0.0 0011...

2018-09-30 11:16:53 1262

翻译 求连续子数组中最大和

思路:动态规划遍历数组,遇到负的和则放弃之前的结果,重新积累,这期间保留最大值用max记录最终返回的最大和,用curmax记录累加值对于数值中一个数arr[i],若其左边的累加和非负,那么加上arr[i]判断此时的curmax是否大于max,若大于此时的max,则用max记录下来function FindGreateSum(arr){var len=arr.length;...

2018-09-30 08:28:18 280

转载 http无状态

1》官方说法:1.协议对于事务处理没有记忆能力2.对同一个url请求没有上下文关系3.每次的请求都是独立的,它的执行情况和结果与前面的请求和之后的请求时无直接关系的,它不会受前面的请求应答情况直接影响,也不会直接影响后面的请求应答情况4.服务器中没有保存客户端的状态,客户端必须每次带上自己的状态去请求服务器2》理解标准的http协议指的是不包括cookies,session...

2018-09-26 11:21:48 6183 2

翻译 jq的插件

1>基本概念jq的插件分为类级别开发和对象级别开发,类级别开发在真实项目中几乎不用2>jQuery插件开发方式1)通过$.extend()来扩展jQuery相对简单,一般很少能够独立开发复杂插件,仅仅是在jQuery身上添加一个静态方法而已,我们通过$.extend()添加函数时直接通过$符号调用($.myfunction()),而不需要选中DOM元素($(“#elem...

2018-09-25 07:42:53 200

翻译 Ajax

1>概念AJAX是异步的 JavaScript 和 XML,它不是新的编程语言,它是一种新方法。2>过程浏览器让XHR跟浏览器要点数据-》浏览器接着干别的事-》XHR去向浏览器请求数据-》服务器返回数据给XHR-》XHR通知浏览器数据回来了-》浏览器收到XHR返回的数据渲染页面3>关于技术1)XHR:全称XMLHttpRequest,它是浏览器的内置对...

2018-09-24 10:47:03 142

原创 封装addClass()和removeClass()方法

function addClass(element,new_name){if(!element||!new_name) return false;if(element.className){var old_name=element.className;element.className=old_name+" "+new_name;}else{element.classNa...

2018-09-23 09:53:25 481

翻译 Performance API(前端性能监控)

1》获取时间戳的方法比较要得到脚本运行的精确耗时,需要一个精度时间戳,传统做法是使用Date对象getTime方法,其不足之处在:1)getTime方法及Date对象的其他方法只能精确到毫秒级别2)getTime方法只能获取脚本运行过程中时间进度,无法知道一些后台事件进度,比如浏览器用了多长时间从服务器加载网页为解决这两个问题ES5引入高精度时间戳performance API,精...

2018-09-23 07:44:11 1715

翻译 白屏时间,首屏时间,DOM树构建时间,整页时间

业界衡量移动端web app交互性能的优劣主要是通过检测webview渲染页面时白屏时间,首屏时间,DOM树构建时间,整页时间,交互性能指Processing和onLoad在浏览器交互阶段(Processing和onLoad时段)浏览器接收到服务器返回的基础页的数据后,浏览器需要对HTML对这个单纯的文本内容进行解析,从文本中构建出一个内部数据结构DOM树,从HTML也能得到外联和内联css脚...

2018-09-22 18:03:00 5459

翻译 webpack打包体积过大的问题

webpack把我们所有的文件都打包成一个js文件,即使你是小项目,打包后的文件也非常大1)去掉不必要的插件开发环境和生产环境使用同一个webpack配置文件,导致生产环境打包的js文件包含很多没必要的插件(如:NoEmitOnErrorsPlugin)2)提取第三方库第三方库和源代码在一起打包体积会很大CommonsChunkPlugin 提取代码中公共模块,然后将公共模块打...

2018-09-22 09:06:17 1392

翻译 css3动画优化

就是减少浏览器在动画运行时所需要做的工作渲染DOM的时候浏览器做的工作:获取DOM后分割为多个图层,对每个图层的节点计算样式结果,为每个节点生成图形和位置,将每个节点绘制填充到图层位图中,图层作为纹理上传至GPU(图形处理器),符合多个图层到页面上生成最终屏幕图像注意:如果图层中某个元素需要重绘,那么整个图层都需要重绘,比如一个图层包含很多节点,其中有gif图,gif图的每一帧都会重回...

2018-09-21 00:19:08 362

翻译 圆环的实现

方法一:利用子元素绝对定位的方法<div id="circle"><div id="ncircle"></div></div>#circle{width:100px;height:100px;background:green;border-radius:50%;}#ncircle{width:50px;...

2018-09-19 22:50:35 158

翻译 bind封装

Function.prototype.bindOne=function(context){ if(typeof this!=='function'){ throw new Error('bound is not callable') } //留住this var self=this; //arguments转数组,并从index=1截取 var args=Array.protot...

2018-09-18 00:15:30 182

翻译 判断回文

方法一:判断字符串头尾是否相等,逐次向中间检查function isPaline(line){line+="";for(var i=0,j=line.length-1;i<j;i++,j--){if(line.charAt(i)!==line.charAt(j)){return false;}}return true;}var str="abbbba...

2018-09-15 09:07:15 903

翻译 根据属性的值排序

function compare(propertyName){ return function(object1,object2){ var value1=object1[propertyName]; var value2=object2[propertyName]; if (value1>value2) { return 1; } else if...

2018-09-14 19:52:54 311

翻译 Promise.all()方法的实现

function promiseAll(promises){ return new Promise(function(resolve,reject){ if(!Array.isArray(promises)){ return reject(new TypeError("argument must be anarray")) } var countNum=0; var pr...

2018-09-13 00:00:46 5550 3

原创 扁平化数组(多层嵌套)

方法一:var arr=[1,[2,[3,[4,5]]]];function flatten(arr){var len=arr.length;var temp=[];for(var i=0;i<len;i++){if(Array.isArray(arr[i])){var child=flatten(arr[i]);temp=temp.concat(child...

2018-09-12 23:14:52 1364

翻译 Set数据结构

1》概念Set数据结构类似于数组但是成员的值是唯一的,没有重复值;Set本身是一个构造函数用于生产Set数据结构,Set函数可以接受一个数组(或类数组),对象作为参数用于初始化判断是否相等:向set加入值的时候,不会发生类型转换(所以5和“5”是不同的),Set内部判断两个值是否是不同的,它类似于全等操作符,但是有不同主要是Set内部判读NaN等于自身,而全等操作符认为NaN不等于自身...

2018-09-09 18:12:45 487

翻译 每3个字符用逗号隔开

function fenge(str){ var result=str.replace(/(\d)(?=(\d{3})+$)/g,"$1,"); return result;}var str="12334565632";console.log(fenge(str)); 

2018-09-04 21:15:24 911

翻译 js查找数组重复元素

方法一:利用sort方法,先使用sort方法将数组排序,再来判断找出重复元素function res(arr){var temp=[];arr.sort().sort(function(a,b){if(a===b&&temp.indexOf(a)===-1){temp.push(a)}})return temp;}var arr=[1,...

2018-09-04 18:43:16 9545 1

原创 js预解析

1》概念:js代码执行之前会在相应的执行环境中(全局环境,局部环境)预先把一些东西(function,var定义的变量)解析到内存中2》过程:1)创建一个当前执行环境下的活动对象2)将var声明的变量设置为活动对象的属性(也就是将其添加到活动对象当中),并将其赋值为undefined3)将function定义的函数也添加到活动对象当中3》具体情况:函数定义的方法有:函数...

2018-09-04 17:17:07 417

空空如也

空空如也

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

TA关注的人

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