![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
js
俺是编程侠
这个作者很懒,什么都没留下…
展开
-
js纯前端压缩图片
js纯前端压缩 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>压缩图片</title> </head> <body> <inp原创 2020-11-12 16:52:00 · 437 阅读 · 1 评论 -
js 对固定的计算,做缓存处理,比如计算乘积;
对固定的计算,做缓存处理,比如计算乘积; var mult = (function() { var cache = {}; var calculate = function() { var a = 1; for(var i = 0, l = arguments.length; i<l;i++){ a = a * arguments[i]; } return a; } ...原创 2018-11-27 00:19:15 · 212 阅读 · 0 评论 -
for循环定义同类型的多个函数
用for循环来定义多个类型相同的函数 依次定义了Type.isString,Type.isArray,Type.isNumber函数 var Type = {}; for(var i = 0, type; type = ['String','Array','Number'][i++];){ (function(type){ Type['is'+type] = function...原创 2018-11-26 23:51:25 · 792 阅读 · 0 评论 -
Function.prototype.bind的实现
Function.prototype.bind = function() { var self = this, content = [].shift.call( arguments ), //需要绑定的this上下文 args = [].slice.call( arguments ); //剩余的参数转成数组 return fu...原创 2018-11-26 23:08:36 · 180 阅读 · 0 评论 -
js的深度复制
1、利用JSON.stringify和JSON.parse;这种方法只能适用json格式, var a = {b:{c:1}}; var d = JSON.parse(JSON.stringify(a)); console.log(d); //{b:{c:1}} a.b.c = 2; console....原创 2018-10-16 11:13:40 · 136 阅读 · 0 评论 -
判断js对象为null或者属性为空
利用for in对对象进行遍历,如果可以遍历则不为空 1、包括原型链的属性 function isEmpty(obj){ for(var key in obj){ return false; } return true } 2、只对对象本身判断,不包括原型链 function isEmpty(obj){ fo...原创 2018-10-15 14:19:59 · 8300 阅读 · 1 评论 -
类数组转数组的方法
有时候我们需要对类数组处理,比如最常见的是函数的参数arguments,document.getElementsByTagName() 类数组的特点: 1、拥有length属性,其他属性(索引)为非负整数。 2、不具有数组所具有的方法 例如:var arguments = {length:2,0:'a',1:'b'}; 方法一:循环类数组,并把子项添加到一...原创 2018-10-11 19:04:35 · 355 阅读 · 0 评论 -
通过Set数据结构给数组去重
var arr = [1,2,2,3,3,4,]; 方法1: 利用Set给数组去重,在通过解构把Set结构转回数组 [...new Set(arr)] //[1,2,3,4] 方法2: 利用Set给数组去重,在通过Array.from(),把Set结构转成数组 Array.from(new Set(arr)) ...原创 2018-09-13 11:51:39 · 711 阅读 · 0 评论 -
js获取页面上元素的位置的通用方法
var div = document.getElementById('myDiv'); EventUtil.addHandler(div,"click",function(event){ event = event || window.event; var pageX = event.pageX, pageY = event.pageY; ...原创 2018-08-29 21:46:26 · 1203 阅读 · 0 评论 -
防止自己的网站给别人iframe使用
主要在网页头部加上下面的代码,就可以防止网页被嵌入框架iframe中。 <script type="text/javascript"> if (window != top) //判断当前的window对象是否top对象 top.location.href = window.location.href //如果不是,将top对象的网站自动导向被嵌入网页的...转载 2018-08-21 14:48:29 · 749 阅读 · 0 评论 -
跨浏览器事件处理程序
var EventUtil = { addHandler: function(element, type, handler){ if (element.addEventListener){ element.addEventListener(type, handler, false); } else if (element.atta...原创 2018-08-27 22:49:44 · 188 阅读 · 0 评论 -
js事件委托
事件委托:利用事件冒泡,只指定一个事件处理程序,就可以管理某一类型的所有事件。其中包括click,mousedown,mouseup,keydown,keyup,keypress,以click为例: <ul id="myLinks"> <li id="goSomewhere">Go somewhere</li> <li id="doSo...原创 2018-08-30 17:58:42 · 121 阅读 · 0 评论 -
js实现递归,尾递归(递归优化),防止栈溢出
一、一版的递归实现 n!,比如 5!= 5 * 4 * 3 * 2 *1 function fact(n) { if(n == 1) { return 1; }else{ return n * fact(n-1) } ...原创 2018-08-20 15:53:09 · 3681 阅读 · 0 评论 -
js实现斐波那契数列 0 1 1 2 3 5 8 13 21 34 。。。
斐波那契数列就是著名的兔子生兔子问题,后面一个数等于前两个数的和 //max大于等于2的整数 function fib(max) { var t,a=0,b=1,arr = [0,1]; while (arr.length < max) { [a,b] = [b,a+b]; //es6的解构 arr.push(b...原创 2018-08-20 15:25:48 · 4901 阅读 · 0 评论 -
js中字符串转数字的方法
一、parseInt()函数和parseFloat()函数 parseInt('123') === 123; parseFloat('123.01') === 123.01; 二、Number()强制转换 Number('123.01') === 123.01; 三、js弱转换 +'123.01' === 123.01;...原创 2018-08-20 13:36:43 · 4863 阅读 · 0 评论