摘要: 继承 记录一下 javascript 的各种继承方式,个人用得比较多的还是原型链继承和 ES6 的 extends。 原型链继承 缺点: 在创建 Child 的实例时,无法向 Parents 传参 父类里面的引用类型被共享,个例修改导致所有实例都被修改 借用构造函数 为了解决上面的问题 ,经典继承方 阅读全文
posted @ 2019-03-02 16:42 郭佬 阅读(319) 评论(0) 推荐(2) 编辑
摘要: 原型与原型链 javascript 创建对象 类与构造函数是大多数编程语言所拥有的,而借鉴了 C 与 JAVA 的 javascript 也是有类和构造函数的,不过 javascript 的实现不太一样。 上面的例子中, 就是构造函数, 就是它的实例,但是它对共享性不太好,所以有了原型模式。 原型模 阅读全文
posted @ 2019-02-28 14:41 郭佬 阅读(367) 评论(0) 推荐(0) 编辑
摘要: 模块化 目前比较流行的 JS 模块化方案有 CommonJS、AMD、CMD 以及 ES6 Module,还有个 UMD 方案。 CommonJS CommonJS 是服务器端的模块化方案,nodeJs 就采用了这种方案。在 CommonJS 规范中,一个文件即一个模块,用 和`exports re 阅读全文
posted @ 2019-02-26 23:15 郭佬 阅读(441) 评论(1) 推荐(0) 编辑
摘要: Promise 是 JavaScript 异步编程中的重要概念,是目前较为流行的 JavaScript 异步编程解决方案之一。它最早由社区提出和实现,ES6 将其写进了语言标准,统一了用法,原生提供了 对象。 Promise 的基本概念 一个 有以下几种状态: pending: 初始状态,既不是成功 阅读全文
posted @ 2019-02-25 21:24 郭佬 阅读(490) 评论(1) 推荐(0) 编辑
摘要: 栈 先来看一道题 Leetcode 32 Longest Valid Parentheses (最长有效括号) 给定一个只包含 和 的字符串,找出最长的包含有效括号的子串的长度。 示例 1: 示例 2: 这道题可以用动态规划来做,也能用简洁明了的栈来解决。 什么是栈? 栈是一种先进后出(LIFO)的 阅读全文
posted @ 2019-01-16 21:07 郭佬 阅读(466) 评论(3) 推荐(0) 编辑
摘要: 数组乱序 顾名思义,数组乱序就是把数组存储的值的顺序都打乱。 Fisher–Yates shuffle 著名的 "洗牌算法" ,原理就是遍历数组元素,将当前元素与随机抽取的一个剩余元素进行交换。 下列表格遍历元素是从后往前: | 随机数范围 | 随机数 | 原始数据 | 结果 | | : : | : 阅读全文
posted @ 2018-12-25 13:57 郭佬 阅读(10296) 评论(0) 推荐(0) 编辑
摘要: 数组扁平化 1. 什么是数组 扁平化 ? 数组扁平化就是将一个多层嵌套的数组 (Arrary) 转化为只有一层。 2. 递归实现 思路是先循环数组,遇到嵌套就递归。 javascript function flatten(arr) { let res = []; for (let i=0; i re 阅读全文
posted @ 2018-12-21 12:45 郭佬 阅读(1244) 评论(0) 推荐(0) 编辑
摘要: 函数柯里化 1. 柯里化 在计算机科学中,柯里化(Currying)是把接受多个参数的函数变换成接受一个单一参数(最初函数的第一个参数)的函数,并且返回接受余下的参数且返回结果的新函数的技术。 简单来说,就是固定一些参数,返回一个接受剩余参数的函数。 其实就是使用闭包返回一个延迟执行函数。 只看文字 阅读全文
posted @ 2018-12-19 16:26 郭佬 阅读(2070) 评论(0) 推荐(0) 编辑
摘要: 防抖节流 1. 防抖 (debounce) 先来看看下面的代码: javascript //触发滚动事件,num 就加1 let num = 0; function incNum() { console.log('鼠标滚动中'); console.log( ); } window.addEventL 阅读全文
posted @ 2018-12-13 12:31 郭佬 阅读(340) 评论(0) 推荐(0) 编辑
摘要: 事件委托 1. 事件流 事件流描述的是从页面中接收事件的顺序。 JS高级程序设计(第3版) 规定的事件流有三个阶段:①事件 捕获 阶段、②处于 目标 阶段、③事件 冒泡 阶段 2. 事件委托 当需要添加的事件过多时,可以使用 事件委托 ,而事件委托实际上利用了事件 冒泡 的特性。 使用事件委托还需了 阅读全文
posted @ 2018-12-08 16:27 郭佬 阅读(291) 评论(0) 推荐(0) 编辑
我终究成长为一个不特别的人