摘要: 彻底搞清楚 Iterator(遍历器)接口 1. 什么是Iterator(遍历器) 我们都知道 JavaScript 中对数组有很多种遍历方式,但是如果我们想像数组那样去遍历其他数据,我们该怎么办呢?Iterator遍历器就为我们提供了这种机制。 Iterator 是一个接口,它为 JavaScri 阅读全文
posted @ 2020-11-15 22:11 毛小星 阅读(783) 评论(0) 推荐(0) 编辑
摘要: 浅拷贝和深拷贝 一、数据类型 我们都知道JavaScript数据类型分为基本数据类型(String、Number、Boolean、Null、Undefined、Symbol,未来还会有BigInt)和引用数据类型(Object),当然Object还包括Date、function、Array、RegE 阅读全文
posted @ 2020-10-12 22:13 毛小星 阅读(421) 评论(0) 推荐(0) 编辑
摘要: JavaScript垃圾回收机制和性能优化 前言 我们都知道程序的运行需要一定的内存空间,且在运行过后就必须将不再用到的内存释放掉,否则就会出现下图中内存的占用持续升高的情况,一方面会影响程序的运行速度,另一方面严重的话则会导致整个程序的崩溃。 JavaScript中的内存管理 内存:由可读写单元组 阅读全文
posted @ 2020-10-12 22:09 毛小星 阅读(926) 评论(0) 推荐(0) 编辑
摘要: 函数式编程 前言 如果你已经从事开发有一段时间了,肯定多少对'函数式编程'有一定的了解,很多人包括我自己在还没有深入了解函数式编程的时候,基本都会有一个误解,函数式编程就是用很多function函数去编程你的代码。最近正好我在学函数式编程,于是就想着写一篇文章去向一些像我一样的初学者去解释一下函数式 阅读全文
posted @ 2020-09-22 20:41 毛小星 阅读(298) 评论(0) 推荐(1) 编辑
摘要: 我们在使用new去创建构造函数的时候会经历四个步骤: 创建一个新对象 将构造函数的作用域赋值给新对象(因此this就指向了这个新对象) 执行构造函数中的代码(为这个新对象添加属性) 返回新对象 下面看一下代码实现: function my_new(Super, ...args) { const ob 阅读全文
posted @ 2020-08-31 22:18 毛小星 阅读(377) 评论(0) 推荐(1) 编辑
摘要: const arr1 = [1,4,5,8,12,16,18] function binarySearch(arr, num) { let len = arr.length let leftIndex = 0 let rightIndex = len - 1 while(leftIndex <= r 阅读全文
posted @ 2020-08-18 21:29 毛小星 阅读(611) 评论(0) 推荐(1) 编辑
摘要: Array.prototype.my_reduce = function(callBack, initValue) { if (typeof callBack !== 'function') { // 方法错误处理 throw new Error(`${callBack} is not a func 阅读全文
posted @ 2020-08-16 16:50 毛小星 阅读(393) 评论(1) 推荐(1) 编辑
摘要: 首先定义一下测试数据 const test = function(age, sex) { console.log(this.name, age, sex, 'test') } const person = { name: '毛小星' } 实现call方法 下面将自定义的call方法写在Functio 阅读全文
posted @ 2020-08-13 22:20 毛小星 阅读(163) 评论(0) 推荐(1) 编辑
摘要: // Vue3.0 响应式原理 const toProxy = new WeakMap() // 放置的是 原对象:代理过的对象 防止多次代理同一个对象 const toRaw = new WeakMap() // 放置的是 代理过的对象:原对象 防止代理已经代理过的对象 // 判断是否为对象 fu 阅读全文
posted @ 2020-08-12 22:37 毛小星 阅读(383) 评论(0) 推荐(1) 编辑
摘要: 今天来实现一个简易版的Vue2.0响应式 class Vue { constructor(options) { this.$options = options this.$data = options.data // 重写数组方法 let arrayPrototype = Array.prototy 阅读全文
posted @ 2020-08-12 21:55 毛小星 阅读(351) 评论(0) 推荐(0) 编辑