丁同亚的博客
夺朱非正色
上一页 1 ··· 3 4 5 6 7
摘要: 先安装 bluebird npm install bluebird 使用promisifyAll函数,可以将模块导出的接口promise化,注意处理后的API函数名加Async如:fs.readFileAsync() var Promise = require('bluebird') const f 阅读全文
posted @ 2021-05-16 14:01 丁同亚的博客 阅读(79) 评论(0) 推荐(0)
摘要: //此时是等价的 exports.name = 'xxx' module.exports.sex = '男' //此时把module.export指向的对象改变,以module.exports为准 module.exports = { id:'1', girlfriend:{ name:'yyy' 阅读全文
posted @ 2021-05-16 10:05 丁同亚的博客 阅读(131) 评论(0) 推荐(0)
摘要: 浮动的影响 浮动的元素脱离文档流 浮动元素后面的兄弟元素就会占据原先它的位置 其父元素感知不到他的存在,撑不开父元素. 解决方法 在浮动元素后加一个块元素div2,添加clear:both属性,div2会清除div1浮动的影响,div2后面的元素和父元素也不会受到浮动的影响了 .clearfix:: 阅读全文
posted @ 2020-12-20 13:39 丁同亚的博客 阅读(113) 评论(0) 推荐(0)
摘要: 浏览器工作原理 浏览器架构 单进程,多线程 多进程,多线程,进程间通过IPC(Inter Process Communication)通信 谷歌多进程架构 各进程的分工 浏览器进程 UI线程,网络线程,存储线程... 负责浏览器的“Chrome”部分, 包括导航栏,书签, 前进和后退按钮。同时这个进 阅读全文
posted @ 2020-12-08 12:26 丁同亚的博客 阅读(208) 评论(0) 推荐(0)
摘要: #自定义代码 这里是我自定义的Promise,如果想看原版,可以跳过最后有符合PromiseA+规范的源码 class 承诺 { constructor(处理器函数) { //1. 处理器函数是在_new 承诺(处理器函数)_的时候当做参数传入到构造函数里的,构造函数里会执行这个处理器函数. let 阅读全文
posted @ 2020-12-06 17:14 丁同亚的博客 阅读(168) 评论(2) 推荐(1)
摘要: let const 原来的var声明标识符:可以重复声明,编译不报错. let,const声明标识符:不能重复声明,再声明编译报错. var声明的标识符作用域是当前函数,let和const是当前{块}. const声明的标识符不能再被赋值,也就是常量. 解构赋值 ES6 允许按照一定模式,从数组和对 阅读全文
posted @ 2020-12-04 19:29 丁同亚的博客 阅读(327) 评论(0) 推荐(0)
摘要: 原型和原型链 看图说话: 1、对象内部具有[[Prototype]]属性,该属性不可直接访问,浏览器通过__proto__(两条‘_’)可以让用户读写该内部属性,最重要的是,该属性指向创建本对象的原型对象。 2、每个原型对象内部都有一个独有属性constructor,指向该原型对象的构造函数。 3、 阅读全文
posted @ 2020-12-03 15:36 丁同亚的博客 阅读(147) 评论(0) 推荐(0)
摘要: this在函数调用时创建,一般的对象没有this,全局window可以理解为一个函数,他有一个全局this JavaScript 语言之所以有this的设计,跟内存里面的数据结构有关系。 函数里this的指向由函数的调用方式决定 不服就干,几个例子来说明函数的调用方式 var 变量 = 123 va 阅读全文
posted @ 2020-12-02 19:21 丁同亚的博客 阅读(90) 评论(0) 推荐(0)
摘要: 分析下面两段代码 console.log(num)//undefined var num = 10 f()//可以执行 //f2()不可以执行 console.log(f)//function console.log(f2)//undefined function f(){ console.log( 阅读全文
posted @ 2020-12-01 14:44 丁同亚的博客 阅读(98) 评论(0) 推荐(0)
上一页 1 ··· 3 4 5 6 7