摘要: 我们先来简单了解一下setTimeout延时器的运行机制。setTimeout会先将回调函数放到等待队列中,等待区域内其他主程序执行完毕后,按时间顺序先进先出执行回调函数。本质上是作用域的问题。 因此若是这样将不会得到想要的结果输出1.2.3.4.5,而会连续输出5个6。 for (var i=1; 阅读全文
posted @ 2020-11-28 22:23 浅笑· 阅读(337) 评论(0) 推荐(0) 编辑
摘要: 1.如何构造? 先复习一下es5常用的构建类的方法:首先es5的写法使用原型进行对象的方法的,为什么不在构造函数里添加方法呢?因为实例化对象的时候,会重复的建立好多相同的方法,浪费资源。所以需要把对象的方法挂载到prtotype里。 关于new和this的绑定问题,可以大概简化为: 首先通过new生 阅读全文
posted @ 2020-11-28 22:19 浅笑· 阅读(203) 评论(0) 推荐(0) 编辑
摘要: 在 TypeScript 中我们会使用泛型来对函数的相关类型进行约束。这里的函数,同时包含 class 的构造函数,因此,一个类的声明部分,也可以使用泛型。那么,究竟什么是泛型?如果通俗的理解泛型呢? 什么是泛型 泛型(Generics)是指在定义函数、接口或类的时候,不预先指定具体的类型,而在使用 阅读全文
posted @ 2020-11-28 22:17 浅笑· 阅读(2120) 评论(0) 推荐(0) 编辑
摘要: 进程:process模块 process 模块是 nodejs 提供给开发者用来和当前进程交互的工具,它的提供了很多实用的 API。从文档出发,管中窥豹,进一步认识和学习 process 模块: 如何处理命令参数? 如何处理工作目录? 如何处理异常? 如何处理进程退出? process 的标准流对象 阅读全文
posted @ 2020-11-28 22:15 浅笑· 阅读(174) 评论(0) 推荐(0) 编辑
摘要: 进程:process模块 process 模块是 nodejs 提供给开发者用来和当前进程交互的工具,它的提供了很多实用的 API。从文档出发,管中窥豹,进一步认识和学习 process 模块: 如何处理命令参数? 如何处理工作目录? 如何处理异常? 如何处理进程退出? process 的标准流对象 阅读全文
posted @ 2020-11-28 22:13 浅笑· 阅读(261) 评论(0) 推荐(0) 编辑
摘要: 如果我们自己编写从URL中分析和提取元素的代码,那么有可能会比较痛苦和麻烦。程序员作为这个社会中最“懒”的群体之一,无休止的重复造轮子必然是令人难以容忍的,所以大多数浏览器的标准库中都已经内置了URL对象。 那么现在,有了它,我们就可以将URL字符串作为参数传递给URL的构造函数,并创建它的实例解析 阅读全文
posted @ 2020-11-28 22:12 浅笑· 阅读(1302) 评论(0) 推荐(0) 编辑
摘要: 1.什么是 Promise promise 是目前 js 异步编程的主流解决方案,遵循 Promises/A+ 方案。 2.Promise 原理简析 (1)promise 本身相当于一个状态机,拥有三种状态 pending fulfilled rejected一个 promise 对象初始化时的状态 阅读全文
posted @ 2020-11-28 22:10 浅笑· 阅读(3436) 评论(0) 推荐(0) 编辑
摘要: 众所周知, ES6 新增了一个全局、内建、不可构造的 Reflect 对象,并提供了其下一系列可被拦截的操作方法。其中一个便是 Reflect.apply() 了。下面探究下它与传统 ES5 的 Function.prototype.apply() 之间有什么异同。 函数签名 MDN 上两者的函数签 阅读全文
posted @ 2020-11-28 22:05 浅笑· 阅读(223) 评论(0) 推荐(0) 编辑
摘要: 1. 可选链 从 v3.7 可用 这是当你尝试访问嵌套数据时的一个痛点,嵌套数据越多,代码就会变得越繁琐。 在下面的例子中,要访问 address ,你必须遍历 data.customer.address,而且 data 或 customer 有可能是 undefined,所以通常使用 && 运算符 阅读全文
posted @ 2020-11-28 21:58 浅笑· 阅读(485) 评论(0) 推荐(0) 编辑
摘要: 引言 ES6中允许使用箭头=>来定义箭头函数,是ES6中较受欢迎也较常使用的新增特性。本文将从箭头函数的基本语法,与普通函数对比,箭头函数不适用场景三个方面进行梳理。 基本语法 // 箭头函数 let func = (name) => { // 函数体 return `Hello ${name}`; 阅读全文
posted @ 2020-11-28 21:55 浅笑· 阅读(498) 评论(0) 推荐(0) 编辑
摘要: jsON.parse和jsON.stringify是对json数据的转换,在js中使用的频率还是非常高的,比如localStorage,cookie中对复合型数据的存储,与服务器进行数据交互的格式转换等等。 JSON.stringify()是将一个JavaScript值(对象或者数组)转换为一个js 阅读全文
posted @ 2020-11-28 21:54 浅笑· 阅读(363) 评论(0) 推荐(0) 编辑
摘要: Node.js 的出现使得前端工程师可以跨端工作在服务器上,当然,一个新的运行环境的诞生亦会带来新的模块、功能、抑或是思想上的革新,本文将带领读者领略 Node.js (以下简称 Node) 的模块设计思想以及剖析部分核心源码实现。 CommonJS 规范 Node 最初遵循 CommonJS 规范 阅读全文
posted @ 2020-11-28 21:52 浅笑· 阅读(109) 评论(0) 推荐(0) 编辑
摘要: 前言 对于灵活的js而言,继承相比于java等语言,继承实现方式可谓百花齐放。方式的多样就意味着知识点繁多,当然也是面试时绕不开的点。撇开ES6 class不谈,传统的继承方式你知道几种?每种实现原理是什么,优劣点能谈谈吗。这里就结合具体例子,按照渐进式的思路来看看继承的发展。 准备 谈到js继承之 阅读全文
posted @ 2020-11-28 21:45 浅笑· 阅读(106) 评论(0) 推荐(0) 编辑
摘要: JavaScript 使用原型继承:每个对象都从其原型对象继承属性和方法。在 JavaScript 中不存在 Java 或 Swift 等语言中所使用的作为创建对象 蓝图的传统类,原型继承仅处理对象。 原型继承可以模仿经典类的继承。为了将传统类引入 JavaScript,ES2015 标准引入了 c 阅读全文
posted @ 2020-11-28 21:42 浅笑· 阅读(205) 评论(0) 推荐(0) 编辑
摘要: 引言 平时经常会逛 Github,除了一些 star 极高的大项目外,还会在 Github 上发现很多有意思的小项目。项目或是想法很有趣,或是有不错的技术点,读起来都让人有所收获。所以准备汇总成一个「漫游Github」系列,不定期分享与解读在 Github 上偶遇的有趣项目。本系列重在原理性讲解,而 阅读全文
posted @ 2020-11-28 21:40 浅笑· 阅读(194) 评论(0) 推荐(0) 编辑