js
csyz12138
这个作者很懒,什么都没留下…
展开
-
js 中 Object.entries() 方法的使用
本文摘自MDN作用Object.entries() 方法返回一个给定对象自身可枚举属性的键值对数组,其排列与使用 for…in 循环遍历该对象时返回的顺序一致(区别在于 for-in 循环也枚举原型链中的属性)。示例const obj = { foo: 'bar', baz: 42 };console.log(Object.entries(obj)); // [ ['foo', 'bar...转载 2019-11-26 11:07:35 · 9473 阅读 · 1 评论 -
简单实现map和reduce
Array.prototype.myreduce = function(fn){ if(typeof fn !== 'function'){ throw new error('argument is not a function') }else{ if(this.length === 0){ throw new error('Reduce of empty array with ...原创 2019-09-11 11:05:28 · 211 阅读 · 0 评论 -
JS数组扁平化实现
扁平化: 将一个嵌套多层的数组 array (嵌套可以是任何层数)转换为只有一层的数组1. toString()toString()方法仅限于处理基本类型(number,string,boolean),同时转化后需要按原类型转换回来,在处理混合类型数组时无法解决用法:以 number 数组举例function flat(target) { return target.toStri...原创 2019-08-21 23:40:43 · 188 阅读 · 0 评论 -
JS数组去重五种方法(已测试性能)
// 注:以下各个实现过程未封装函数,如有需要自行封装,执行测试时请分开执行,以免上次的执行结果影响下次测试时长let arr = []// 创建百万条百以内的整数数据for(let i = 0;i < 1000000;i++){ arr.push(parseInt(Math.random() * 100))}// 排序后根据与前一个是否相等判断是否放入新数组console.t...原创 2019-08-21 22:26:18 · 297 阅读 · 0 评论 -
防抖节流的实现
函数防抖(debounce)什么是防抖在事件被触发n秒后再执行回调函数,如果在这n秒内又被触发,则重新计时。应用场景(1)用户在输入框中连续输入一串字符后,只会在输入完后去执行最后一次的查询ajax请求,这样可以有效减少请求次数,节约请求资源;(2)window的resize、scroll事件,不断地调整浏览器的窗口大小、或者滚动时会触发对应事件,防抖让其只触发一次;实现<...原创 2019-08-21 21:32:00 · 181 阅读 · 0 评论 -
JS定时器不准及解决方案
原因:.Eventloop 循环机制中,异步事件 setInterval 到时后会把回调函数放入消息队列中,主线程的任务执行完毕后依次执行消息队列的任务,由于消息队列中存在大量任务,其他任务执行时间就会造成定时器回调函数的延迟,如果不处理则会一直叠加延迟示例:var startTime = new Date().getTime();var count = 0;//耗时任务setInter...原创 2019-08-21 11:13:42 · 7487 阅读 · 1 评论 -
自己实现bind,call,apply
let obj = { a:3, fn:function(str=null){ console.log(str +' --- '+ this.a) }}Function.prototype.mybind = function(obj){ return () =>{ this.mycall(obj) }}Function.prototype.mycall = func...原创 2019-08-20 22:35:42 · 119 阅读 · 0 评论 -
JS对象和数组的深浅拷贝(最全)
// 对象拷贝let objA = { a:1, b:function () { console.log(this.a) }, c:{ c1:undefined, c2:Symbol('c2') }, d:null}// console.log(objA)let objB = Object.assign({},objA) //浅拷贝console.log(o...原创 2019-08-19 21:56:47 · 195 阅读 · 0 评论 -
运行时动态引入JS文件
运行时动态引入JS文件(尚在开发环境)1.添加方法 requireJSFilesexport function requireJSFiles (target, pathArr) { return new Promise((resolve, reject) => { requireJSFile(target, pathArr[0]).then(() => { ...原创 2019-08-10 15:30:41 · 531 阅读 · 0 评论 -
jssdk使用微信扫一扫
jssdk使用微信扫一扫具体请参考官方文档,此处列举示例,后台java相关算法后续更新<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Document</title> <script type="text/javascr...原创 2019-04-18 18:22:44 · 703 阅读 · 0 评论 -
(.*?),(.+?) 的理解
1 (.*?),(.+?) 的作用解析:. 的作用为匹配所有字符(除换行符)* 的作用为匹配前面的子表达式零次或多次? 的作用为匹配前面的子表达式零次或一次,或指明一个非贪婪限定符由于*,+限定符都是贪婪的,因为它们会尽可能多的匹配文字,只有在它们的后面加上一个?就可以实现非贪婪或最小匹配例如: let regp = /(\/(.*)\/)/ console.log(regp....原创 2019-02-28 17:38:09 · 2094 阅读 · 0 评论 -
iframe实现整个页面的跳转
在使用iframe的时候,希望在框架内进行操作之后实现整个页面的刷新,起初使用window.location.reload()方法if(res.success){ window.location.reload(); //只是单层刷新}else{ alert(res.Msg);}但是发现只是iframe框架做了跳转,而外层页面没有刷新,并没有实现想要的功能,因此我们需要操作上层页面,更...原创 2018-12-03 23:56:29 · 2138 阅读 · 0 评论 -
JS中 Object.assign()用法
方法:Object.assign()作用:将sourse对象的 值 赋值给目标对象,两者都有的会覆盖,target独有会保留,sourse独有会添加使用方法:1.复制对象var obj = { a: 1 };var copy = Object.assign({}, obj);console.log(copy); // { a: 1 }2.合并对象var o1 = { a: 1 ...原创 2018-12-05 00:56:36 · 8209 阅读 · 0 评论 -
JavaScript正则表达式/g的坑
JavaScript正则表达式遇到的坑自己在玩正则表达式的时候,突然想自己写方法拆分字符串,因此写了以下函数function spliByRgep(string,regp){ if(!regp||!string){ throw new Error({msg:'参数错误!'}); }else{ const r = regp; let s = string; let arr ...原创 2018-11-23 01:25:47 · 851 阅读 · 0 评论