Promise.all与Promise.race 发表于 2021-03-19 | 分类于 js , es6 , promise Promise.allPromise.all()方法用于将多个 Promise 实例,包装成一个新的 Promise 实例。 参数可以不是数组,但必须具有 Iterator 接口,且返回的每个成员都是 Promise 实例 12345678910var p1 = new Promise((res ... 阅读全文 »
宏任务与微任务 发表于 2021-02-22 | 分类于 js js 运行机制 1. 单线程语言:单线程是指Js引擎执行Js时只分了一个线程给他执行,也就是执行js时是单线程的,在单线程语言中同一时间只能做一件事情 2. 运行环境:js的运行环境一般在node或者浏览器下 3. 任务队列:所有任务可以分成两种,一种是**同步任务(sync)**,另一种是 ... 阅读全文 »
对象支持for-of方法 发表于 2021-01-22 | 分类于 js , es6 为什么对象不支持for-of方法 因为for-of 循环首先会向被访问对象请求一个迭代器对象,然后通过调用迭代器对象的next() 方法来遍历所有返回值。 打印对象发现 1234567var obj = { a: 1}console.log(obj[Symbol.iter ... 阅读全文 »
回流与重绘 发表于 2021-01-12 | 分类于 js 回流与重绘的概念及触发条件 回流 当渲染树中部分或者全部元素的尺寸、结构或者属性发生变化时,浏览器会重新渲染部分或者全部文档的过程就称为回流。 下面这些操作会导致回流: 页面的首次渲染 浏览器的窗口大小发生变化 元素的内容发生变化 元素的尺寸或者位置发生变化 元素的字体大小发生变化 激活CSS伪 ... 阅读全文 »
node+express服务器 发表于 2020-12-15 | 分类于 node , express 安装配置 node, express, request,mysql,body-parser 文件配置 新建app.js,导入各个模块如下: 123456789101112131415161718192021222324252627282930313233343536373839404142434 ... 阅读全文 »
call apply bind实现原理 发表于 2020-11-29 | 分类于 js call 实现步骤: 判断调用对象是否为函数,即使是定义在函数的原型上的,但是可能出现使用 call 等方式调用的情况。 判断传入上下文对象是否存在,如果不存在,则设置为 window 处理传入的参数,截取第一个参数后的所有参数。 将调用函数作为上下文对象的一个属性。 使用上下文对象来调用这个方 ... 阅读全文 »
call apply bind改变this指向 发表于 2020-11-09 | 分类于 js call和apply的区别它们的作用一模一样,区别仅在于传入参数的形式的不同。 apply 接受两个参数,第一个参数指定了函数体内 this 对象的指向,第二个参数为一个带下标的集合,这个集合可以为数组,也可以为类数组,apply 方法把这个集合中的元素作为参数传递给被调用的函数。 call 传入 ... 阅读全文 »
js判断数据类型 发表于 2020-10-19 | 分类于 js typeof:可以判断数字,字符串,等基本数据类型和Symbol 12345678910111213typeof 'str' //Stringtypeof 1 //Numbertypeof true //booleantypeof undefined //undefin ... 阅读全文 »
优雅降级和渐进增强 发表于 2020-09-29 | 分类于 css 定义: 优雅降级是向下兼容,针对主流最完善的浏览器设计网站,最后向下兼容所谓过时,有功能缺失的浏览器 渐进增强是向上兼容,首要保证内容本身能展示,其他向上追求,适应未来环境的需要,针对高级浏览器进行效果,交互,追加功能达到更好的体验 前缀CSS3(-webkit-* / -moz-* ... 阅读全文 »
离线存储 发表于 2020-09-09 | 分类于 js , es6 离线存储关键词: manifest 使用方式:头部html标签设置 新建catche.manifest文件,书写方式 12345678910111213CACHE MANIFEST#v0.11CACHE:js/app.jscss/style.cssNETWORK:resourse/logo.pngF ... 阅读全文 »