javascript
文章平均质量分 74
miaolegemiyaha
一只代码搬运工
展开
-
整理个跨浏览器的事件处理程序
直接上代码:var EventUtil = {//添加对象 addHandler: function(element, type, handler){ if (element.addEventListener){ element.addEventListener(type, handler, false); } else if原创 2016-09-09 15:13:39 · 207 阅读 · 0 评论 -
vue中计算属性computed的getter setter问题
首先不应该使用箭头函数来定义计算属性函数 (例如 aDouble: () => this.a * 2)。理由是箭头函数绑定了父级作用域的上下文,所以 this 将不会按照期望指向 Vue 实例,this.a 将是 undefined。需求如下:邮箱和编码联动:规则是邮箱是编码[email protected]代码原创 2017-11-02 16:33:17 · 19282 阅读 · 1 评论 -
整理几个经典的算法,随时更新(排序,去重,斐波那契函数)
排序问题:排序算法(Sorting algorithm)是计算机科学最古老、最基本的课题之一。要想成为合格的程序员,就必须理解和掌握各种排序算法。目前,最常见的排序算法大概有七八种,其中"快速排序"(Quicksort)使用得最广泛,速度也较快。思想:(1)在数据集之中,选择一个元素作为"基准"(pivot)。(2)所有小于"基准"的元素,都移到"基准"的左边;所有大于"基原创 2016-09-10 22:28:24 · 2483 阅读 · 0 评论 -
斐波那契数列js解法之性能对比
斐波那契数列 1 1 2 3 5 8 13 ...话不多说直接进入整体第一种利用递归function fibo(n) {return n// or return narguments.callee(n - 1) + arguments.callee(n - 2) }console.time('small loop1')for( let i = 1;原创 2017-06-26 15:14:22 · 2030 阅读 · 0 评论 -
JavaScript之this解密
JS中的this一直是个比较头疼的问题,这里我总结了一下this的四种场景原创 2017-06-20 15:42:45 · 246 阅读 · 0 评论 -
中文输入法onkeydown的bug
有个bug比较蛋疼,在中文输入法中监听e.keycode会一直是229,但是在英文输入法没有问题;解决办法是吧keydown事件换成keyup,就可以监听到正确的keycode了 $('#eTicket').on('keydown',function(e){ console.log(e.keyCode) }) $('#eTicket').on(原创 2017-06-08 14:47:23 · 1556 阅读 · 0 评论 -
驼峰命名法camelCase和连字符Hyphenate 相互转换
// 正则方法 function test(str){ var o = /-(\w)/g; return str.replace(o,function(a,b){ // b为子项; return b.toUpperCase() }) }//字符串方法 function test2(str){ var arr = str.sp原创 2016-09-11 23:39:20 · 3580 阅读 · 0 评论 -
关于for循环中引用setTimeout
题目1:var a=[1,2,3]; var len=a.length; for(___){ setTimeout{function(){ console.log(__); },0} } 要求输出a的所有项。该题目考察的就是JavaScript的单线程以及setTimeout的异步特性。【注】:JavaScript引擎是单线程运行的,浏览器运原创 2016-09-20 23:09:08 · 10206 阅读 · 0 评论 -
一张图看懂JavaScript中数组的迭代方法
在《JavaScript高级程序设计》中,分门别类介绍了非常多数组方法,其中迭代方法里面有6种,这6种方法在实际项目有着非常广泛的作用。其中本人最爱用forEach和map,好用又高效,不用什么都是for循环大法。但是初学的时候往往觉得头大,这些方法都很像,到底有什么区别?趁着今天有空,我把对着6个方法的认知,用最浅显的图画出来,希望看到的同学觉得有用。前辈已经总结了一张图片,这里直接看就好了转载 2017-01-18 16:29:34 · 304 阅读 · 0 评论 -
页面重绘,回流以及优化
Opera曾列出“reflow和repaint是减缓JavaScript的三大主要原因之一”一文,可见重绘和回流对性能影响很大。昨天面试百度正好有问到相关知识,这里整理下。回流与重绘1. 当render tree中的一部分(或全部)因为元素的规模尺寸,布局,隐藏等改变而需要重新构建。这就称为回流(reflow)。每个页面至少需要一次回流,就是在页面第一次加载的时候。在回流的时候原创 2017-02-17 13:50:11 · 364 阅读 · 0 评论 -
细说$.extend() $.proxy()
今天看公司项目代码,有些方法以前不是很常用,这里总结一下。jQuery.extend 函数详解JQuery的extend扩展方法: Jquery的扩展方法extend是我们在写插件的过程中常用的方法,该方法有一些重载原型,在此,我们一起去了解了解。 一、Jquery的扩展方法原型是: extend(dest,src1,src2,src3..转载 2016-10-25 19:42:24 · 285 阅读 · 0 评论 -
关于IE坑爹的hasLayout
什么是hasLayout?hasLayout是IE特有的一个属性。很多的ie下的css bug都与其息息相关。在ie中,一个元素要么自己对自身的内容进行计算大小和组织,要么依赖于父元素来计算尺寸和组织内容。当一个元素的hasLayout属性值为true时,它负责对自己和可能的子孙元素进行尺寸计算和定位。虽然这意味着这个元素需要花更多的代价来维护自身和里面的内容,而不是依赖于祖先元素来完成这些工作。转载 2016-08-26 15:19:27 · 911 阅读 · 0 评论 -
封装一个方法返回字符串出现最多的字符以及次数
function test(str) { var num = 0; var ivalue = ''; var obj = {}// obj={// a:[],// b:[]// } for(var i = 0; i < str.length; i++) { if(!obj[str[i]]) { obj[str原创 2016-09-11 23:44:56 · 1155 阅读 · 0 评论 -
大部分人都会做错的经典JS闭包面试题
目录由工作中演变而来的面试题JS中有几种函数创建函数的几种方式三个fun函数的关系是什么?函数作用域链的问题到底在调用哪个函数?后话由工作中演变而来的面试题这是一个我工作当中的遇到的一个问题,似乎很有趣,就当做了一道题去面试,发现几乎没人能全部答对并说出原因,遂拿出来聊一聊吧。先看题目代码:function fun(n,o) { console.log(o)转载 2016-09-14 23:08:29 · 330 阅读 · 0 评论 -
封装一个转换成千分符的函数
function test(str){ var h = a.length%3; var arr = []; var inum = 0; var tem = [] if(h!=0){ var atrhead = str.substring(0,h) arr.push(atrhead) } var strleft = str.原创 2016-09-11 23:42:52 · 425 阅读 · 0 评论 -
简单封装下ajax
function ajax(method, url, data, success) { var xhr = null; try { xhr = new XMLHttpRequest(); } catch (e) { xhr = new ActiveXObject('Microsoft.XMLHTTP'); } if (method == 'get' && data) {原创 2016-09-10 21:22:27 · 186 阅读 · 0 评论 -
终极异步解决方案async,await以及异步并发处理方案
前端js的传统异步解决方案及时回调,but我们亲爱的es6新增了三种解决方案:PromiseGenerator- async之前项目中一直是用promise来解决,vue项目中的axios其实也是返回的Promise对象,async其实算是Generator的语法糖,这次我们不讲Promise 和Generator,因为对async一直理解不是很透彻,拿一个项目中的实例改造原创 2018-01-18 15:32:25 · 11333 阅读 · 2 评论