JavaScript笔记
文章平均质量分 55
Ocean!!
之后主要更新个人博客,抽空更新到到csdn
展开
-
连续bind()多次的结果
js连续绑定多次bind只有第一次生效原创 2022-08-12 18:47:51 · 1022 阅读 · 0 评论 -
原型和原型链
:: tip JS原型的概念javascript常被描述为一种基于原型的语言(每个对象都拥有一个原型对象)当访问一个对象的属性时,它不仅在该对象上寻找,还会寻找该对象的原型,以及该对象原型的原型,层层向上,直到找到或者到达原型链的末尾函数可以有属性。每个函数都有一个特殊的属性叫作原型prototype// 控制台输出 /* {}}*/上面这个对象,就是大家常说的原型对象可以看到,原型对象有一个自有属性::: tip 原型链的概念。...原创 2022-08-05 20:09:27 · 174 阅读 · 0 评论 -
函数柯里化
*函数柯里化(**curry)是函数式编程中的概念。函数柯里化是指每次调用函数时,先接收部分参数,并返回一个函数,然后传递剩下的一部分参数,再返回一个函数,直到传递完所有参数为止,通俗的讲,函数柯里化就是固定部分参数,返回一个接受剩余参数的函数,也称为部分计算函数,目的是为了缩小适用范围,创建一个针对性更强的函数。...原创 2022-07-26 21:21:31 · 544 阅读 · 0 评论 -
Javascript队列和双端队列
1. 创建队列🎉声明自己的类,表示一个队列class Queue { constructor() { this.count = 0; this.lowestCount = 0; this.items = {}; }}::: tip首先是需要存储队列中元素,也就是上面的items,我们可以用一个数组,但是为了在获取元素的时候更加高效,选择用一个对象来存储更好。count是用来控制队列的大小。有时候,我们还需要从队列前端移除元原创 2022-05-03 17:10:46 · 569 阅读 · 0 评论 -
手写节流和防抖函数
1. debounce()防抖函数🍊某个函数在短时间内只执行最后一次。function debounce(fn,delay = 200) { if(typeof fn !== 'function'){ return TypeError('fn is not a function') } let lastfn = null return function(...args) { if(lastfn){ clearT原创 2022-05-03 17:09:40 · 370 阅读 · 0 评论 -
手写Promise
1. Promise声明🍒class MyPromise { // 构造器 constructor(executor) { // 成功 let resolve = () => {}; // 失败 let reject = () => {}; // 立即执行 executor(resolve,reject); }}2. 定义基本状态🍒class MyPromise { // 构造器原创 2022-05-03 17:08:57 · 211 阅读 · 0 评论 -
手写call,apply,bind方法
一、如何改变js中this指向问题?🌊1. 通过ES6的箭头函数(指向函数定义时的this)2. 通过call,bind,apply改变this指向二、call,bind,apply三者的主要区别🌊call,bind,apply这三个方法的第一个参数都是 this的指向对象第二个参数: call和bind都是接收参数列表,apply接收的是一个包含多个参数的数组(也可以是类数组)bind方法不会立即执行,而是返回一个新的函数,调用新函数的时候才会执行目标函数三、手动实现原创 2022-05-03 17:07:52 · 682 阅读 · 0 评论 -
关于Js中创建二维数组的坑
Js中二维数组的创建:首先JavaScript只支持 一维数组 ,但我们可以通过一些方法实现矩阵以及多维数组其中普通的创建方法并不会出现什么问题:(1) 利用一维数组嵌套一维数组的方式创建二维数组:let arr = [] ;a[0] = [1,2,3,4,5,6];a[1] = [10,20,30,40,50,60]然后使用一个 双层for循环 就可以迭代这个二维数组中的元素所以用这种方法创建多维数组,不管有几个维度,都可以通过嵌套循环来遍历遇到问题的方法: ![请添加图片描原创 2021-11-15 20:04:04 · 1048 阅读 · 0 评论 -
对JavaScript事件循环机制的理解
前言:这次主要整理一下自己对 Js事件循环机制,同步,异步任务,宏任务,微任务的理解,大概率暂时还有些偏差或者错误。如果有,十分欢迎各位纠正我的错误!一、事件循环和任务队列产生的原因:首先,JS是单线程,这样设计也是具有合理性的,试想如果一边进行dom的删除,另一边又进行dom的添加,浏览器该如何处理?引用:“单线程即任务是串行的,后一个任务需要等待前一个任务的执行,这就可能出现长时间的等待。但由于类似ajax网络请求、setTimeout时间延迟、DOM事件的用户交互等,这些任务并不消原创 2021-11-16 01:52:07 · 8607 阅读 · 3 评论