![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
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 · 213 阅读 · 0 评论 -
vue中计算属性computed的getter setter问题
首先不应该使用箭头函数来定义计算属性函数 (例如 aDouble: () => this.a * 2)。理由是箭头函数绑定了父级作用域的上下文,所以 this 将不会按照期望指向 Vue 实例,this.a 将是 undefined。 需求如下: 邮箱和编码联动: 规则是邮箱是编码+@xx.com 代码原创 2017-11-02 16:33:17 · 19324 阅读 · 1 评论 -
整理几个经典的算法,随时更新(排序,去重,斐波那契函数)
排序问题: 排序算法(Sorting algorithm)是计算机科学最古老、最基本的课题之一。要想成为合格的程序员,就必须理解和掌握各种排序算法。 目前,最常见的排序算法大概有七八种,其中"快速排序"(Quicksort)使用得最广泛,速度也较快。 思想: (1)在数据集之中,选择一个元素作为"基准"(pivot)。 (2)所有小于"基准"的元素,都移到"基准"的左边;所有大于"基原创 2016-09-10 22:28:24 · 2494 阅读 · 0 评论 -
斐波那契数列js解法之性能对比
斐波那契数列 1 1 2 3 5 8 13 ... 话不多说直接进入整体 第一种利用递归 function fibo(n) { return n // or return n arguments.callee(n - 1) + arguments.callee(n - 2) } console.time('small loop1') for( let i = 1;原创 2017-06-26 15:14:22 · 2043 阅读 · 0 评论 -
JavaScript之this解密
JS中的this一直是个比较头疼的问题,这里我总结了一下this的四种场景原创 2017-06-20 15:42:45 · 249 阅读 · 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 · 1589 阅读 · 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 · 3596 阅读 · 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 · 10234 阅读 · 0 评论 -
一张图看懂JavaScript中数组的迭代方法
在《JavaScript高级程序设计》中,分门别类介绍了非常多数组方法,其中迭代方法里面有6种,这6种方法在实际项目有着非常广泛的作用。其中本人最爱用forEach和map,好用又高效,不用什么都是for循环大法。但是初学的时候往往觉得头大,这些方法都很像,到底有什么区别?趁着今天有空,我把对着6个方法的认知,用最浅显的图画出来,希望看到的同学觉得有用。 前辈已经总结了一张图片,这里直接看就好了转载 2017-01-18 16:29:34 · 313 阅读 · 0 评论 -
页面重绘,回流以及优化
Opera曾列出“reflow和repaint是减缓JavaScript的三大主要原因之一”一文,可见重绘和回流对性能影响很大。昨天面试百度正好有问到相关知识,这里整理下。 回流与重绘 1. 当render tree中的一部分(或全部)因为元素的规模尺寸,布局,隐藏等改变而需要重新构建。这就称为回流(reflow)。每个页面至少需要一次回流,就是在页面第一次加载的时候。在回流的时候原创 2017-02-17 13:50:11 · 371 阅读 · 0 评论 -
细说$.extend() $.proxy()
今天看公司项目代码,有些方法以前不是很常用,这里总结一下。 jQuery.extend 函数详解 JQuery的extend扩展方法: Jquery的扩展方法extend是我们在写插件的过程中常用的方法,该方法有一些重载原型,在此,我们一起去了解了解。 一、Jquery的扩展方法原型是: extend(dest,src1,src2,src3..转载 2016-10-25 19:42:24 · 294 阅读 · 0 评论 -
关于IE坑爹的hasLayout
什么是hasLayout?hasLayout是IE特有的一个属性。很多的ie下的css bug都与其息息相关。在ie中,一个元素要么自己对自身的内容进行计算大小和组织,要么依赖于父元素来计算尺寸和组织内容。当一个元素的hasLayout属性值为true时,它负责对自己和可能的子孙元素进行尺寸计算和定位。虽然这意味着这个元素需要花更多的代价来维护自身和里面的内容,而不是依赖于祖先元素来完成这些工作。转载 2016-08-26 15:19:27 · 919 阅读 · 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 · 1169 阅读 · 0 评论 -
大部分人都会做错的经典JS闭包面试题
目录 由工作中演变而来的面试题JS中有几种函数创建函数的几种方式三个fun函数的关系是什么?函数作用域链的问题到底在调用哪个函数?后话 由工作中演变而来的面试题 这是一个我工作当中的遇到的一个问题,似乎很有趣,就当做了一道题去面试,发现几乎没人能全部答对并说出原因,遂拿出来聊一聊吧。 先看题目代码: function fun(n,o) { console.log(o)转载 2016-09-14 23:08:29 · 340 阅读 · 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 · 439 阅读 · 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 · 194 阅读 · 0 评论 -
终极异步解决方案async,await以及异步并发处理方案
前端js的传统异步解决方案及时回调,but我们亲爱的es6新增了三种解决方案: Promise Generator - async 之前项目中一直是用promise来解决,vue项目中的axios其实也是返回的Promise对象,async其实算是Generator的语法糖,这次我们不讲Promise 和Generator,因为对async一直理解不是很透彻,拿一个项目中的实例改造原创 2018-01-18 15:32:25 · 11370 阅读 · 2 评论