7 vcxiaohan2

尚未进行身份认证

我要认证

暂无相关简介

等级
TA的排名 5k+

js去抖和节流函数详解

$(() => { // 举例:window scroll事件 /* 如果一直滚动下去,在经过3s后一定会执行一次move函数(函数节流),如果停止滚动,在经过1s后会执行一次move函数(函数去抖),用来控制会频繁执行的函数,优化dom操作,防止浏览器执行过多,出现卡死现象 */ $(window).on('scroll', () =&am

2018-07-31 20:27:35

js函数柯里化的理解

对象扁平化应用场景node接收参数时,无法自动转换参数,如:’false’不能转为false

2018-07-25 15:13:10

实现destructuringArray方法,达到如下效果

网上的阿里二面的一道笔试题,实现destructuringArray函数,具有如下功能:// destructuringArray( [1,[2,4],3], "[a,[b],c]" )// result// { a:1, b:2, c:3 }网上解法不一且没有注释,为新人易懂,在此提供个人认为思路比较巧妙的2种解法,详见注释:let a = f([1, [2, [4]], 3],...

2018-07-22 17:17:50

自定义一个简单的前端模板引擎

123

2018-05-23 23:19:43

new Date()传参的浏览器兼容性

测试以下是在IE9的测试情况可以看到IE9不支持new Date('2018-1-2'),但是支持new Date('2018-01-02')和new Date('2018/1/2') 主流浏览器都支持由/分隔的日期格式需求假如有这样的需求,一个输入框,用户可以输入日期,但是我们需要让所有浏览器正常解析,我们可以通过下面的函数做一个转换:console.log(getIEFormat('2018-

2018-04-19 18:14:43

Mockjs原理简析

前言有一个前后端分离的项目用到过Mockjs,后端提供了数据格式,前端通过模拟接口的返回数据,进行页面的渲染,有一段时间,百思不得其解,这个插件是怎么把ajax请求给拦下来的,网上搜索了一番,资料甚少,未果。 后来有一天,不知道怎么的突然想到,如果把ajax方法请求改写了,在发送请求之前提供一个回调是不是能实现这个功能?思路准备环境 从最方便的jquery入手,打算改写$.a...

2018-04-11 23:48:06

js将人民币小写金额转换为大写

人民币大写在线转换工具以下为es6写法,可以直接在控制栏粘贴运行/** * 将人民币小写金额转换为大写 * * @class RMB * 示例 let rmb = new RMB() console.log(rmb.transform(2114523.234))// 贰佰壹拾壹万肆仟伍佰贰拾叁元贰角叁分 */class RMB { constructor() {

2018-03-26 14:35:10

js自定义事件

自定义事件(简单版)let Event = { /* 绑定事件 Event.on('log', function(param1, param2) {// 绑定一个log事件,并接收param1和param2参数 console.log(1, param1, param2) }) */ on(event, cb) { if

2018-03-01 15:56:28

移动端Retina屏幕1px边框问题

起因设计师给出设计稿上明明是1px的边框在移动端retina屏上显示很粗(2倍屏上显示为2px,3倍屏上显示为3px)设备像素比注意安卓不支持小于1的像素,所以通过设置border-width=0.5px不适用安卓解决通过高度为1px的div,再通过scaleY缩小可以实现(不能做圆角,而且做4条边很麻烦,排除).border-line { he...

2017-12-19 10:37:02

如何让多个div横向排列而不换行

现象多个div排列在一行,包裹的框宽度不足时,那么会换行显示如图 解决关键点在于white-space: nowrap;的使用效果 代码<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-

2017-12-15 16:58:01

zepto.js使用注意点

(注:以下解决方案只考虑现代浏览器(IE>=IE9)和手机端)fadeIn显隐遮罩层问题重现zepto的fadeIn方法,在显示透明的遮罩层(如opacity: 0.5)时,会把该图层最终的opacity设置为1,这显然不符合我们的预期解决思路通过css3动画transition的方式来达到显隐的效果给遮罩层设置样式.mask { display: none; posit

2017-09-21 17:09:25

js错误监控

即时错误概念:即未注意写出的错误捕获:使用try catch或者window.onerror资源加载错误概念:js、css、img 不存在的情况捕获:由于window的error事件不能冒泡,所以我们使用事件捕获window.addEventListener('error', (err) =&amp;amp;amp;gt; { console.log(err) (new Im...

2017-08-20 08:37:51

js递归示例

console.log(factorial(3))// 6// 阶乘function factorial(num) { if(num <= 1) { return 1 }else { return num*factorial(num-1) }}flatten({a: 1, b: {c: 2, d: {e: 3}}})// 遍历对象上的所

2017-08-19 22:29:22

css使多个相互之间有间隔的元素两端对齐显示

场景重现电商网站经常会展示产品图片,假设每行展示4个,且每个和每个之间有20px的距离,如何使每行展示的产品看起来是居中显示效果列举失败效果 成功效果 代码示例&amp;amp;amp;lt;!DOCTYPE html&amp;amp;amp;gt;&amp;amp;amp;lt;html lang=&amp;amp;amp;quot;en&amp;amp;amp;quot;&amp;amp;amp;gt;&amp;amp;amp;lt;head&amp;amp;amp;gt; &amp;amp;

2017-08-19 11:30:54

jq判断一个元素是否在可视范围内

场景重现比如视频在页面中播放,当用户向下滚动页面时,假如视频元素不可见了,那么我们应该停止播放 相似的场景还有图片懒加载简单思路$(() => { // 只要将当前元素相对于窗口的高度+当前元素自身的高度和窗口的滚动距离做对比即可(注意要根据情况而定,对比参照物不一定是窗口,还有可能是父级div) setInterval(() => { console.log($(

2017-08-19 10:08:43

js原生实现jquery方法offset()和position()

$(() => { console.log($('p').offset()) console.log($('p').position()) console.log(offset($('p')[0])) console.log(position($('p')[0])) // jquery offset原生实现 function offset(target)

2017-08-19 09:45:27

node全文检索研究

前言企业中应用比较广泛的是Lucene和Solr,但是需要使用JavaElasticsearch可以使用Node本文给出几种Node实现全文搜索应用的简单示例node相关实现方式text-search MongoDB 全文搜索教程mongoosejs/mongoose-text-search优点:mongdb内置,方便缺点:功能少,效果可能不太理想倒排索引 MongoDB优化之

2017-07-20 11:29:14

node权限控制模块node_acl的应用

前言一个应用必不可少的部分:登录认证(jaredhanson/passport)、权限控制(OptimalBits/node_acl)由于node_acl中文资料较少,本文给出一个完整的简单示例,便于初学者理解和学习最后有动态的效果图给出,更直观的展示node_acl的使用效果重点 示例中的路由并未采用如:app.put('/blogs/:id', function(req, res, n

2017-07-18 10:23:34

node图片处理工具gm的使用:图片水印、图片验证码、图片裁剪示例

请在这里查看示例☞ gm示例安装GraphicsMagick和ImageMagick的区别 (出现错误1)GraphicsMagick是从ImageMagick中分离出来的,推荐下载ImageMagick加载GraphicsMagick(大小4.72 MB) var gm = require('gm')加载ImageMagick(大小23.8 MB) var gm = require('

2017-07-07 15:29:22

构建Promise队列实现异步函数顺序执行

场景有a、b、c三个异步任务,要求必须先执行a,再执行b,最后执行c且下一次任务必须要拿到上一次任务执行的结果,才能做操作解决方法一(使用then链式操作)特点:可以满足需求,但是书写比较繁琐代码var a = function() { return new Promise(function(resolve, reject) { setTimeout(functio

2017-06-29 11:38:02

查看更多

勋章 我的勋章
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!