首页> 前端开发

代码重构技巧

分类:前端开发2016-03-29阅读:(1174)标签:重构
代码重构是为了改善现有的代码设计,让代码更好。作为读书笔记,这里摘录《javascript设计模式与开发实践》中的代码重构部分。提炼函数避免出现超大函数。独立出来的函数有助于代码复用。独立出来的函数更容易被覆写。独立出来的函数如果拥有一个良好的命名,它本身就起到了注释的作用。(代码即注释,高逼格的代码)合并重复的条件片段如果一个函数体内有一些条件分支语句,而这些条件分支语句内部散布了一些重复...

js正则面试题:字符串全局匹配模式下的返回值问题

分类:前端开发2016-03-25阅读:(1395)标签:javascript, 正则表达式
技术群里看到一个关于js正则的面试题。大致如下:var reg = /abc/g; var str = 'abcd'; alert(reg.test(str)); alert(reg.test(str)); 以之前的见识,我觉得两次弹出都是true,为什么这么出题?难道不一样,为什么呢?测试了一下,一次true,一次false,而且继续往下alert的话,都是true,false交替的。百撕...

设计模式的本质

分类:前端开发2016-03-24阅读:(1090)标签:架构
设计模式的本质:解耦合。那什么是解耦合?耦合定义来源于电路学。当一个模块直接修改或者损坏,会导致另一个模块也损坏或者不起作用,则称二者存在耦合。耦合度定义如果两个模块之间耦合度为零:一个模块损坏不会影响另一个模块。高内聚 低耦合高内聚低耦合,是软件工程中的概念,是判断设计好坏的标准,主要是面向对象的设计,主要是看类的内聚性是否高,耦合度是否低。内聚就是一个模块内各个元素彼此结合的紧密程度,高...

setTimeout,setInterval第三个参数

分类:前端开发2016-03-19阅读:(1336)标签:javascript
setTimeout和setInterval是什么就不说了,今天在看ES6的promise的时候,看到代码中setTimeout传递了三个参数。难道这第三个参数是前面函数的参数?eg:function timeout(ms) { return new Promise((resolve, reject) => { setTimeout(resolve, ms, 'done')...

window.requestAnimationFrame更好的动画操作

分类:前端开发2016-03-19阅读:(959)标签:javascript
window.requestAnimationFrame()这个方法是用来在页面重绘之前,通知浏览器调用一个指定的函数,以满足开发者操作动画的需求。这个方法接受一个函数为参,该函数会在重绘前调用。注意: 如果想得到连贯的逐帧动画,函数中必须重新调用 requestAnimationFrame()。如果你想做逐帧动画的时候,你应该用这个方法。这就要求你的动画函数执行会先于浏览器重绘动作。通常来...

css3实现无宽高子元素水平垂直居中

分类:前端开发2016-03-10阅读:(1772)标签:css3
css3中flex伸缩布局给移动端带来了很大的便利(因为移动端浏览器基本上都兼容最新的html5/css3),通常我们会遇到想把一个盒子内的元素居中,不管是垂直还是水平(当然以往垂直居中很折腾人)。如何实现呢?那就使用前面说的flex伸缩布局了。看代码更直观。<style type="text/css"> .box{ width:700px; ...

Javascript中call()和apply()的区别

分类:前端开发2016-03-05阅读:(1008)标签:javascript
在Javascript中,函数会在各种不同上下文中被使用,函数中的this一般会被自动设置,但是你可以改变this的值来改变函数运行时的上下文。因为 JavaScript 的函数存在“定义时上下文”和“运行时上下文”以及“上下文是可以改变的”这样的概念。有3种函数方法允许你改变this的值。函数是对象,所以函数也有方法。1,call()方法;2,apply()方法;3,bind()方法;bi...

ajax获取json文件数据遇到的坑

分类:前端开发2016-01-09阅读:(1649)标签:javascript, ajax, jquery, json
今天做ajax访问json文件数据的时候遇到了灵异事件,首先,对于XX.json文件的使用,我是第一次。好吧,也不是灵异事件,只是经验不足造成的错误。先来个简洁版的案情重现。页面中的一些数据需要通过接口获取,这里的数据放到了xx.json文件里,当然,通过ajax请求的就是这个xx.json文件了。ajax请求是用的jQuery的$.ajax()方法,既然是填坑,就针对坑来说,代码如下:&l...

关于string.replace方法的函数参数相关问题

分类:前端开发2016-01-04阅读:(1381)标签:javascript
stringObject.replace()方法第二个参数为函数时,其参数根据前面匹配规则变动。eg1:var str = 'good good study, day day up.'; var reg = /o/g; str.replace(reg,function(){ console.log(arguments); }); // ["o", 1, "...

pointer-events属性介绍

分类:前端开发2015-12-29阅读:(1798)标签:css3
今天看秦时明月的时候点到了qinsmoon官网,看电视剧的时候发现整个界面都在下雪,这应该是一个层浮在最上面的,跟模态层一样,但鼠标能透过这个飘雪花的层,对网页进行正常操作。哎~有点儿意思,之前群里也有人问过,当时忙其它事就没在意,既然遇上了,就赶紧审查下元素,找到这些个雪花,一探究竟。在开发者模式下,找到了这个层,层上的一个样式属性成功引起了我的注意。pointer-events:none...
前端开发