
js
ruantianqing
.....
展开
-
promise async await
首先定义一个函数let func1 = () => new Promise((resolve, reject) => setTimeout(() => resolve(12345), 1000))函数func1执行的时候,会返回一个promise对象let func1 = () => new Promise((resolve, reject) => setTimeout(() => resolve(12345), 1000))let result = fun.原创 2021-01-20 16:57:42 · 223 阅读 · 0 评论 -
事件委托
事件委托对于每一个元素我们都要绑定一个事件,这样对于资源开销很大,对于每一个类元素都要for循环遍历一次,开发成本高,所以可以用事件委托来解决上面的问题事件委托:将所有元素的事件绑定委托给同一个父元素,根据事件冒泡捕获机制,可以在父元素绑定事件中获取的触发事件的这个元素,根据这个元素具有的某类特征(例如元素名称,元素id,元素类,元素属性等待)做不同的处理,实现事件从父元素到被委托的元素传递,其特点:减少事件数量预言未来元素:新增的元素也可以绑定事件避免内存外泄:通常创建一个对象需要占用一些内存原创 2021-01-19 12:20:14 · 1097 阅读 · 0 评论 -
观察者模式,发布订阅者模式
1 观察者模式定义:观察者模式,又叫发布订阅者模式,又叫消息系统,又叫消息机制,又叫自定义事件,解决主体与观察者之间的耦合问题。观察者模式是一个行为型设计模式特点:1 解决的是耦合问题(类与类之间,对象之间,类与对象之间,模块之间)2 对于任何一个观察者来说,其它观察者的改变不会影响自身3 对于任何一个对象来说,既可以是观察者,也可以是被观察者如:jQuery中的观察者模式。$.CallBack()方法执行的结果得到一个观察者对象,观察者对象有一个方法叫add,用来订阅消息的。观察对象有一个原创 2021-01-19 11:29:39 · 169 阅读 · 0 评论 -
单例模式
1 单例模式定义:是能被实例化一次的类或者对象(只能存在一个)特点:只允许实例化一次的对象类对于十分复杂的对象类,往往可以节省资源占用通常也被用来管理命名空间作用:管理命名空间,管理数据,方法的存储应用:一些代码库中命名空间就是通过单例模式实现的管理数据的存储,例如模拟静态变量 <script> // 定义,只能实例化一次 // 有时候不允许外界访问 // 放在闭包中 var single = (fun原创 2021-01-19 11:20:11 · 96 阅读 · 1 评论 -
详解Object.create(null)(转载自https://juejin.cn/post/6844903589815517192)
**(转载自https://juejin.cn/post/6844903589815517192)**Object.create()、{…}的区别先看看我们经常使用的{}创建的对象是什么样子的:var o = {a:1};console.log(o)在chrome控制台打印如下:从上图可以看到,新创建的对象继承了Object自身的方法,如hasOwnProperty、toString等,在新对象上可以直接使用。再看看使用Object.create()创建对象:var o = Obje转载 2021-01-19 10:39:04 · 671 阅读 · 0 评论 -
节流和防抖函数,函数的节流和防抖
1 基于操作的节流,防抖定义函数,绑定滚动事件var num = 0;function demo(){ console.log(++num);}// 基于操作的节流,防抖// 定义定时器句柄var timebar// 高频事件window.onscroll = function(){ // 基于操作的,在高频事件中,执行最后一次 // 将函数放在定时器中,每次触发事件,取消执行,直到最后一次,滚动事件停止的时候执行一次 clearTimeout(ti原创 2021-01-18 22:05:08 · 281 阅读 · 0 评论 -
jquery实现轮播图
html <div class="list"> <div class="content"> <img src="./image/1.jpg" alt=""> <img src="./image/2.jpg" alt=""> <img src="./image/3.jpg" alt=""> <img src="./image/原创 2021-01-18 17:52:44 · 103 阅读 · 0 评论 -
jsonp跨域
跨域域与跨域域:指的是域名 域名对应的是一个ip地址 域名与ip地址的关系存储在域名解析系统中(DNS)跨域 例如:有一个服务器A,有一个服务器B,当浏览器从服务器A上面请求资源并渲染完毕之后,再操作该页面的时候发送了另一个请求到服务器B,这个行为就称为跨域请求资源跨域鉴定当前域是http://localost:3000,当请求回来的页面中,又向其它服务器上请求资源: 不跨域 url: 'http://localost:3000/regist?username=name', 跨域原创 2021-01-14 21:48:32 · 145 阅读 · 0 评论 -
ES6
let关键字用来定义块作用域变量的 var定义函数级作用域变量 在函数内部定义的变量,外部无法访问 在代码块(if, for等)中定义的变量,外部可以访问 let定义块作用域变量的: 在函数内部定义的变量,外部无法访问, 在代码块(if, for等)中定义的变量,外部仍然无法访问let与var比较作用域 var函数级作用域 let块级作用域重复定义 var可以重复定义变量 let不可以重复定义变量声明前置 var支持声明前置原创 2021-01-06 12:38:40 · 224 阅读 · 0 评论 -
ES5
1 JSON–parse将json字符串解析成js对象使用方式:parse(str, fn)str 处理的字符串fn 回调函数返回值表示这次处理的结果第一个参数表示属性名称第二个参数表示属性值this指向当前遍历的对象是从叶子节点到根节点的方向遍历的,从外部向内部遍历var str = '{"a": 1, "b": "2", "c": { "d": 4 }}';// 从叶子节点到根节点方向遍历的,由内到外遍历的// 解析成对象,转换的过程中加一个函数,可以对里面的属性做处理var原创 2021-01-06 12:20:56 · 287 阅读 · 0 评论 -
原生js实现选项卡
1 html <div id="app" class="app"> <div class="header"> <span class="choose">精选</span> <span>社会</span> <span>娱乐</span> <span>体育</span>原创 2021-01-18 15:33:15 · 279 阅读 · 0 评论 -
正则表达式
正则表达式正则表达式(regular expression-RegExp):是被用来匹配字符串中的字符组合的模式,是最简单的数据(字符串)验证方法,常用表单的验证 创建方法:使用正则字面量,/表达式/正则数据类型:引用数据类型,因此也提供了一些方法正则方法 exec() 用来将首次匹配到的字符串以数组方式输出,没有全局匹配 没有返回条件的将返回null test() 用于检测字符串中是否含有正则表达式匹配的字符串 返回值:含有返回true,不含返回false <原创 2021-01-18 09:18:50 · 104 阅读 · 0 评论 -
js 时间转换标准格式、时间戳转换标准格式
一、当前时间转换为标准格式:function getFormatDate() { var date = new Date(); var month = date.getMonth() + 1; var day = date.getDate(); var hour = date.getHours(); var minutes = date.getMinutes(); var seconds = date.getSeconds(); month = (m转载 2021-01-13 10:05:58 · 3113 阅读 · 0 评论