javascript
godnan_kk
因上努力,果上随缘。笑而不语是一种豁达,痛而不言是一种修养,过往不恋,未来不迎,当下不负,如此安好。
展开
-
一些常用的处理函数
函数对象扩展const mixin = (source, target) => { //source 要添加属性的对象 //target 属性被复制的对象 for (var i in target) { if (target.hasOwnProperty(i)) { source[i] = target[i]; } } return source;};url处理函数con...原创 2018-04-09 14:38:18 · 341 阅读 · 0 评论 -
一个Vue页面的内存泄露分析
什么是内存泄露?内存泄露是指new了一块内存,但无法被释放或者被垃圾回收。new了一个对象之后,它申请占用了一块堆内存,当把这个对象指针置为null时或者离开作用域导致被销毁,那么这块内存没有人引用它了在JS里面就会被自动垃圾回收。但是如果这个对象指针没有被置为null,且代码里面没办法再获取到这个对象指针了,就会导致无法释放掉它指向的内存,也就是说发生了内存泄露。为什么代码里面会拿不到这个对象指...转载 2018-07-20 16:48:46 · 17578 阅读 · 4 评论 -
前端请求传到后台多了个等号
前端请求如果后端设置header的话,前后端需要对应。如果不设置,会以默认值传就会莫名其妙的多了个等号原创 2018-07-30 14:59:25 · 7076 阅读 · 1 评论 -
js正则表达式中存在变量
前不久同事询问我js里面怎么给正则中添加变量的问题,遂写篇博客记录下。 一、字面量其实当我们定义一个字符串,一个数组,一个对象等等的时候,我们习惯用字面量来定义,例如:var s = "string";var a = [1,2];var o = {}; 如果需要加入变量,那也是十分简单的事情,比如:var v = "bl";var s = "string" ...转载 2018-08-09 11:58:58 · 4301 阅读 · 0 评论 -
6-20位字符;数字、字母、特殊字符(除空格),起码其中两种组合 这个密码验证的正则表达式
能匹配的组合为:数字+字母,数字+特殊字符,字母+特殊字符,数字+字母+特殊字符组合,而且不能是纯数字,纯字母,纯特殊字符^(?![\d]+$)(?![a-zA-Z]+$)(?![^\da-zA-Z]+$).{6,20}$上面的正则里所说的特殊字符是除了数字,字母之外的所有字符如果要限定特殊字符,例如,特殊字符的范围为 !#$%^&* ,那么可以这么改^(?![\d]...转载 2018-08-03 13:38:52 · 38442 阅读 · 2 评论 -
js之二叉树
function Binary(){ let Node = function(key){ this.key = key; this.left = null; this.right = null; }; var root = ...原创 2018-08-30 23:18:34 · 143 阅读 · 2 评论 -
js call apply bing 理解
这篇文章实在是很难下笔,因为网上相关文章不胜枚举。巧合的是前些天看到阮老师的一篇文章的一句话:“对我来说,博客首先是一种知识管理工具,其次才是传播工具。我的技术文章,主要用来整理我还不懂的知识。我只写那些我还没有完全掌握的东西,那些我精通的东西,往往没有动力写。炫耀从来不是我的动机,好奇才是。"对于这句话,不能赞同更多,也让我下决心好好写这篇,网上文章虽多,大多复制粘贴,且晦涩难懂,我...转载 2018-09-17 11:21:22 · 234 阅读 · 0 评论 -
js正则基础字符集
JS正则表达式大全(整理详细且实用)。需要的朋友可以过来参考下,希望对大家有所帮助正则表达式中的特殊字符字符 含意\ 做为转意,即通常在"\"后面的字符不按原来意义解释,如/b/匹配字符"b",当b前面加了反斜杆后/\b/,转意为匹配一个单词的边界。 -或- 对正则表达式功能字符的还原,如"*"匹配它前面元字符0次或多次,/a*/将匹配a,aa,aaa,加了"\"后,/a\*/将只...转载 2018-11-10 17:44:53 · 316 阅读 · 0 评论 -
柯里化
const curry = fn => { const g = (...arg) => //g==foo fn = curry里的函数 arg.length>=fn.length ? fn(...arg) : (...args) => ...原创 2018-12-27 15:56:12 · 125 阅读 · 0 评论 -
斐波那契的递归优化
const fabonaci = (n) =>{ return n==1|| n==2 ? 1:fabonaci(n-1)+fabonaci(n-2) } console.log(fabonaci(9)) //动态规划 function ...原创 2018-12-27 16:18:06 · 663 阅读 · 0 评论 -
原生js 获取dom的left,top
原创 2018-12-11 11:26:26 · 3373 阅读 · 0 评论 -
JS - 解决鼠标单击、双击事件冲突问题(同时实现两种事件响应)
1,问题描述如果想让一个 DOM 对象既可以被单击,也可以被双击,可以在该对象上同时绑定单击(click)和双击(dblclick)事件。12345678910111213141516171819202122232425262728293031323334<!DOCTYPE html><html> <head> <meta charset="utf...转载 2018-07-03 10:44:01 · 18502 阅读 · 2 评论 -
ie兼容之请求缓存
项目在ie测试的时候,经常发现缓存非常严重,你删除一个列表,如果请求地址没有变化的参数。你会发现ie浏览器直接从缓存中拿数据,这就造成了列表不会刷新。我从网上看到解决方法:1.在ajax请求中加一个cache:false这个参数。2.在url里添加一个随机数,保证每次请求的url发生变化。这样就可以有效防止ie缓存问题。...原创 2018-04-28 09:59:35 · 1562 阅读 · 0 评论 -
window.scroll
今天调响应式。为了不出横向滚动条设置一个属性overflow-x:hidden;结果window.scroll事件失效了。当你去掉html上的overflow属性就会生效。原创 2018-05-11 19:01:18 · 1340 阅读 · 0 评论 -
js操作dom常见问题
自己是菜鸡的时候不理解,为什么用jquery选择不了dom,还有有的时候绑定不上事件。后来慢慢理解才知道,dom没有渲染上,你怎么绑定事件呢。比如jquery,你在拼接字符串的时候,就用选择器选择字符串中的类或id,当然选择不到了,因为他还没挂载在dom上。添加事件也是如此,比如你请求成功了,回调函数中拼接字符串添加dom,但是你在回调外写的绑定事件,当代码执行的时候,异步回调函数是在队列中,等同...原创 2018-04-17 19:34:14 · 536 阅读 · 0 评论 -
详解<a>标签
今天才发现a标签居然有这么多属性查询条件的search属性..我们只要稍加处理,就会得到请求对象。a.host属性a.porta.protocol我们可以封装一个url处理函数,方便我们操作url。function parseURL(url) { var a = document.createElement('a'); a.href = url; return { ...原创 2018-04-24 09:47:21 · 330 阅读 · 0 评论 -
js基本数据类型理解
js数据类型分为两类:1.基本数据类型:null undefined number boolean string2.引用数据类型:function object array基本数据类型存的是值,而引用类型存的是地址。例如 var a = "c",那么a的值就是'c'。如果 var a = [1,2,3],那么a存的是这个数组在内存中的地址。所以会出现深拷贝,和浅拷贝。var a = [1,2,3]...原创 2018-04-20 14:37:46 · 157 阅读 · 0 评论 -
js数组去重
1.利用es6的iterable数据结构set原理:ES6 提供了新的数据结构 Set。它类似于数组,但是成员的值都是唯一的,没有重复的值。Set 本身是一个构造函数,用来生成 Set 数据结构。(利用的算法类似'===',与'==='的区别是 ‘===’认为NaN != NaN ,set的算法认为它们是相等的,但是set认为对象都是不相等的。)const set = new Set([1, 2,...转载 2018-04-20 18:15:03 · 91 阅读 · 0 评论 -
input radio样式调整及动态显示滑动数值
先来一个效果图是由默认样式修改而成,代码如下:input[type="range"] { /*滑动条背景*/ -webkit-appearance: none; background-color:#DCE3F9; height: 5px; } input[type=range]:f...原创 2018-05-10 17:01:26 · 2007 阅读 · 1 评论 -
js克隆一个对象
js 如何实现拷贝一个对象看到大神的代码,奇技淫巧。const copyObj = (obj) => { return JSON.parse(JSON.stringify(obj));};将obj对象转换成json字符串,又将字符串转为对象,成功避过址赋值的过程。...原创 2018-05-17 18:01:39 · 574 阅读 · 0 评论 -
js 字符串去除收尾空格
const strTrim = (str) => { return str.replace(/(^\s*)|(\s*$)/g, "");};一个简单的正则轻松解决原创 2018-05-17 18:03:31 · 4144 阅读 · 0 评论 -
js 获取数据类型
const objType = (obj) => { return Object.prototype.toString.call(obj).match(/\[object (.*)\]/)[1];};因为js 的type of 无法区分数组和对象。原创 2018-05-17 18:05:51 · 645 阅读 · 0 评论 -
js 解决小数加法问题
因为js是弱类型语言,无法进行小数运算。比如0.1+0.2 = 0.30000000000000004如何涉及到金额,我们就要对小数进行处理const floatAdd = (arg1, arg2) => { var r1,r2,m; try { r1 = arg1.toString().split(".")[1].length; } catch(e) { r1 ...原创 2018-05-17 18:15:12 · 5372 阅读 · 0 评论 -
Jquery很实用的优化,不要让自己的代码很low
1、从Google Code加载jQueryGoogle Code上已经托管了多种JavaScript类库,从Google Code上加载jQuery比直接从你的服务器加载更有优势。它节省了你服务器上的带宽,能够很快的从Google的内容分布网络(CDN)上加载JS类库。更重要的是,如果用户访问那些发布在Google Code上的站点后它会被缓存下来。这样做很有意义。有多少站点使用了没有被缓存的相...转载 2018-04-27 10:29:30 · 1183 阅读 · 2 评论 -
js能力提升之路
https://github.com/Sojourn2017/algorithm原创 2019-03-12 11:32:58 · 698 阅读 · 0 评论