js技术集合
文甜心
这个作者很懒,什么都没留下…
展开
-
JS变量声明提升
本质:只提升声明部分 例子 1.我是变量声明,我会被提升在作用域顶端!var a;2.我是变量定义,我的声明部分会被提升,赋值部分不会被提升!var b = 'test';3.我是函数定义,或者叫我函数表达式。其实我就是变量定义,只不过恰好被赋值的类型是函数,所以也只提升变量名,不提升函数值!var c = function() { console.log('test');}4.我是函转载 2017-03-01 20:52:07 · 418 阅读 · 0 评论 -
函数节流与防抖(参考lodash)
function debounce(fn, delay, immediate){var timeout, args, context, timestamp, result; var later = function(){ var last = Date.now() - timestamp; if(原创 2017-09-21 23:15:42 · 5663 阅读 · 0 评论 -
深拷贝与浅拷贝实现(参考jquery)
var toString = [].toString, hasOwn = Object.prototype.hasOwnProperty;var types = { '[object Boolean]':'bool', '[object Number]' : 'number', '[object String]' : 'string', '[原创 2017-09-21 23:13:06 · 342 阅读 · 0 评论 -
jquery无new构造
var jquery = function(selector, context){ return new jquery.fn.init(selector, context);}jquery.fn = jquery.prototype = { init: function(selector, context){ this.dom = document.querySe原创 2017-09-21 23:10:10 · 363 阅读 · 0 评论 -
策略模式实现(验证)
// 定义策略var strategy = { isNotEmpty: function(value, errorMsg){ if(value === ''){ return errorMsg; } },原创 2017-09-21 23:07:45 · 448 阅读 · 0 评论 -
axios中对cookie的封装
function isStandardBrowserEnv() { if(typeof navigator !== 'undefined' && navigator.product === 'ReactNative'){ return false; } return ( typeof window !== 'undefined' &&原创 2017-09-29 16:07:56 · 2179 阅读 · 0 评论 -
Webpack打包原理
开门见山。1、打包单一模块webpack.config.jsmodule.exports = { entry:"./chunk1.js", output: { path: __dirname + '/dist', filename: '[name].js' },};chunk1.jsvar chunk1=1;exports.chunk1=c原创 2017-06-15 20:05:08 · 1665 阅读 · 0 评论 -
常用polyfill代码
原生js创建XHR对象:function createXHR() { if (typeof XMLHttpRequest !== "undefined") { return new XMLHttpRequest(); } else if (typeof ActiveXObject !== "undefined") { /原创 2017-04-18 22:22:20 · 535 阅读 · 0 评论 -
利用事件委托提升性能
作为一个入坑不久的前端,大部分的程序,都是在做交互,经常见到全篇大量都是EventUtil.addHandler(dom,method,function){},讲道理,着实看着心烦。心烦可以解决,看看片放松一下即可,关键性能瓶颈可不是看片能解决的。 添加到页面中的事件处理程序会直接关系到页面的整体运行性能。原因很多,首先,函数时对象,会占用内存,内存中的对象越多,性能就越差。其次,必须事先指定所原创 2017-04-18 21:57:07 · 877 阅读 · 1 评论 -
初识函数式编程
1、map(映射)与reduce(归约)array.map(callback,[ thisObject]);//callback参数(注意,callback需要return,否则数组每一项都会被映射为undefined)[].map(function(value, index, array) { // ...}); //我们用ES3实现 var map = Array.prototyp原创 2017-04-18 21:40:32 · 224 阅读 · 0 评论 -
js中保证小数运算精度的解决
加法函数function Add(a, b) { var str1 = a.toString(),str2 = b.toString(),r1,r2,m; try{r1= str1.split('.')[1].length;}catch(e){ r1 = 0; } try{r2= str2.split('.')[1].length;}catch(e){ r2 = 0; }原创 2017-02-27 17:51:15 · 1318 阅读 · 0 评论 -
图片轮播
CSS3 和 JS 实现图片轮播原创 2017-02-25 22:13:00 · 382 阅读 · 0 评论 -
图片懒加载(初始)
懒加载转载 2017-02-25 00:06:14 · 455 阅读 · 0 评论 -
向文档中添加列表项
DocumentFragment类型 所有节点类型中,只有documentfragment在文档中没有对应标记,故而可以把其作为一个仓库来使用。 创建文档片段的方法如下 var fragment = document.createDocumentFragment();文档片段继承了Node的所有方法。可以通过appendChild()和insertBefore()将文档片段内容添加到文原创 2017-03-02 00:02:19 · 323 阅读 · 0 评论 -
new模拟实现
function newFactory(){ var obj = new Object(); var args = arguments; fn = args.shift(); obj.__proto__ = fn.prototype; var result = fn.call(obj,args); return typeof result === 'o原创 2017-09-21 23:20:56 · 252 阅读 · 0 评论