首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
JavaScript
believe8301
创建于2022-01-03
订阅专栏
js深入学习
暂无订阅
共15篇文章
创建于2022-01-03
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
实现一个ajax请求
上述关于ajax的实现是自己学习的记录,更详细的实现方法大家可以看一下Ajax 知识体系大梳理 - 掘金 (juejin.cn)
手写寄生组合继承
寄生组合继承的优点: 只调用一次父类构造函数 Child可以向Parent传参 父类方法可以复用 父类的引用属性不会被共享 上述关于寄生组合继承的实现是自己学习的记录,更详细的实现方法大家可以看一下J
虚拟节点转化为实际节点
将虚拟节点转化为实际节点,重要的是需要递归处理数据 实现思路: 如果传入数字转化为字符串 如果是字符串,直接创建一个文本节点 如果是对象递归处理数据 完整代码 上述关于虚拟节点转化为实际节点的实现是自
手写await/async
await/async实际上是一种语法糖,以同步方式,实现异步操作。在实现过程中可以通过generator和promise来实现 实现代码 上述关于实现async/await函数的实现是自己学习的记录
数组扁平化
数组扁平化有以下几种方式: 通过Array.prototype.flat(),将数组“拉平” 将数组转化成字符串,利用正则表达式实现 递归实现 利用 reduce 方法实现 完整代码 上述关于数组扁平
手写一个深拷贝函数
实现思路 对象分为,可遍历对象和不可遍历对象。可遍历对象(set、map、array、object)可通过循环、递归来实现,不可遍历对象通过直接用构造函数和原始数据创建一个新对象来实现。 完整代码 上
手写发布订阅模式
发布订阅模式中,包含发布者,事件调度中心,订阅者三个角色。发布者和订阅者是松散耦合的,互不关心对方是否存在,他们关注的是事件本身。发布者借用事件调度中心提供的emit方法发布事件,而订阅者则通过on进
使用 setTimeout, clearTimeout 实现 setInterval, clearInterval
实现思路 setInterval 和 setTimeout 都可以实现延时执行函数的效果,相比之下 setInterval(计时器) 可循环调用函数.既然两者最大的差别在于循环调用,那么只要利用set
手写new函数
new函数作用 要想知道new函数怎么实现,首先要清楚new函数的功能。 首先是新建一个函数 这个新函数的 prototype 指向构造函数的 prototype属性 构造函数内部的this指向新函数
手写节流防抖函数
防抖函数 通俗点来说,防抖函数就是在用户的连续操作中,在一定时间段内最终只执行一次的函数。 实现思路如下: 实现在一定时间段内只执行一次:可以通过 setTimeout、 clearTimeount实
手写promise函数
上述关于节流防抖函数的实现是自己学习的记录,更详细的实现方法大家可以看一下看了就会,手写Promise原理,最通俗易懂的版本!!! - 掘金 (juejin.cn)
手写call、apply、bind函数
--- theme: cyanosis highlight: atom-one-dark --- ```js Function.prototype.ownCall = function (contex
js深入学习之闭包
高阶函数 一个函数如果接收另一个函数作为参数,或者该函数会返回另一个函数作为返回值的函数,那么这个函数就被称之为高阶函数。 数组的相关方法:filter(过滤),map(映射),forEach(迭代)
js深入学习之作用域链
变量提升 举个栗子,如以下代码: 经过实践可以发现,打印结果是 undefined。那又是为什么会出现这一结果呢? 在代码打印之前会有一个编译的过程。我们定义了 age 变量,经过编译就会出现一个全局
js深入学习之浏览器原理
一、浏览器渲染过程 在浏览器输入一个网址(如:https://juejin.cn/user/906424418574183 ) 首先会拿到html资源,一般为index.html。 接下来浏览器将ht