
js笔记
文章平均质量分 72
诗霖雪
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
手写promise
【代码】手写promise。原创 2024-01-03 20:29:32 · 396 阅读 · 0 评论 -
数组常用的21个方法
every() every对数组进行循环,所有元素都满足返回true,假如遇到第一个不满足的元素结束返false,some() 数组进行循环,发现满足条件的第一个元素则循环结束 返回true,假如所有元素不满足 返回false。findindex() 查找满足条件的第一个元素的索引 找到就返回该元素的索引,找不到是-1。lastIndexOf() 返回数组中最后一次出现的给定元素的索引。shift() 删除第一个元素,返回的是被删除的元素。pop() 删除最后一个元素,返回的是被删除的元素。原创 2023-12-11 13:40:03 · 577 阅读 · 0 评论 -
手写深拷贝
for in 可以遍历数组和对象,当值是引用类型是需要再拷贝一份,而这个函数本身就是克隆,就用递归。再判断参数的实例的构造函数是否是日期对象,是的话,返回的是Date的实例。首先判断参数的类型是否为null或undefined,若是,返回自己。再判断其数据类型是否是基本数据类型,是的话,返回自己。最后就只剩引用类型数组或对象了,用其构造函数来判断。思路:封装一个函数,函数有一个参数,上面的深拷贝不能解决循环引用问题。WeakMap()解决循环引用。原创 2023-12-05 18:52:00 · 794 阅读 · 0 评论 -
js进阶笔记之Promise
promise 6个静态方法:all( ) , any( ), race( ) , allSettled( ) ,reject( ), resolve( )异步 遇到耗时任务不必等待其完成,继续执行后面的任务,如定时器,事件回调,ajax请求(axios) js是单线程的,先执行同步代码,后执行异步代码。静态方法Promise.all( [promise1, promise2,promise3])返回是一个promise。Promise.resolve()得到一个成功的promise。原创 2023-12-03 10:43:52 · 1150 阅读 · 0 评论 -
js中的class类
使用class这个关键词定义一个类,基于这个类创建实例以后会自动执行constructor方法,此方法可以用来初始化。另一种是:在类里面添加静态的方法可以使用static这个关键词,静态方法就是不需要实例化类就能使用的方法。new 类() ---->默认会执行类中的constructor方法。子类定义方法想要父类的方法通过 super.父类的方法()new出来的实例对象,调用父类的实例方法是不相等的。super()相当于父类的实例,原型上的方法。父类用箭头函数另写的方法是实例方法。class 类名{ }原创 2023-12-03 10:43:10 · 1005 阅读 · 0 评论 -
Symbol()和迭代器生成器
Generator是一个特殊的函数,执行它会返回一个lterator对象。通过遍历迭代器, Generator函数运行后会返回一个遍历器对象,而不是普通函数的返回值。生成器函数(generator)----生成迭代器(Iterator)的函数,配合yield关键字来控制代码执行流程。yield *可以在Generator函数内部调用一个Generator函数。yield后面的表达式作为本次next返回值的value属性值。普通函数一旦执行 函数体从上往下依次执行。应用场景-产生独一无二的值。原创 2023-12-02 08:11:39 · 567 阅读 · 0 评论 -
数组扁平化的方法
不论数组中嵌套多少级,调用一次函数就实现数组扁平化。数组中多级嵌套,就要多调用几次flat()方法。实现方式一: 数组的flat方法。原创 2023-12-01 08:12:33 · 411 阅读 · 0 评论 -
Set()和Map()
一个set是一堆东西的集合, set有点像数组,不过跟数组不一样的是,set里面不能有重复的内容。删除元素:set.delete('元素') 删除所有元素:set.clear() 全部清空。判断集合是否含有某个元素:set.has(' 元素 ')集合:const set = new Set()往集合添加元素: set.add('元素' )把集合转成数组:Array.from(set)把集合转成数组:[ . . . set ]map.has()判断集合是否含有某个元素。集合遍历:set.forEach( )原创 2023-11-30 09:19:59 · 479 阅读 · 0 评论 -
Es6笔记之箭头函数与解构赋值
解构意思就是分解一个东西的结构,可以用一种类似数组的方式定义N个变量,可以将一个数组中的值按照规则赋值过去。解构赋值是一种快速为变量赋值的简洁语法,本质上仍然是为变量赋值,分为数组解构、对象解构两大类型。箭头函数是一种声明函数的简洁语法,它与普通函数并无本质的区别,差异性更多体现在语法格式上。1.赋值运算符日左侧的[]用于批量声明变量,右侧数组的单元值将被赋值给左侧的变量。3.变量的数量大于单元值数量时,多余的变量将被赋值为undefined。2.变量的顺序对应数组单元值的位置依次进行赋值操作。原创 2023-11-28 11:25:03 · 866 阅读 · 0 评论 -
js手写数组push(),unshift(),pop(),shift(),map()方法
【代码】js手写数组push(),unshift(),pop(),shift(),map()方法。原创 2023-11-27 16:20:05 · 1058 阅读 · 0 评论 -
js正则表达式
(Regular Expression)是一种字符串匹配的模式(规则)原创 2023-11-27 16:14:48 · 1486 阅读 · 0 评论 -
js的防抖与节流
当第一次事件发生,把回调函数放到定时器 setTimeout(function () {回调调用},1000) 并且设置开关 把开关状态为true。给个500毫秒后执行事件回调(定时器),在500毫秒内。所谓节流,单位时间内,某个动作只能执行一次可以用在鼠标移动、页面尺寸缩放resize、滚动条滚动等场景。所谓防抖,单位时间内,某个动作只能执行矗后一次,可以用在搜索框业务中。再次触发事件,先取消上次的定时器,再重新开启一个定时器。防抖 --- 在同一时间内 频繁触发事件,只处理最后一次。原创 2023-11-25 15:07:09 · 708 阅读 · 0 评论 -
深拷贝与浅拷贝
1.浅拷贝只是针对引用类型数据中的属性做了一层复制,如果被拷贝到属性也是引用类型,那么这个属性只是做了个引用地址的传递。2.深拷贝是针对引用类型数据中的属性做无限层级的复制,不管属性是值类型还是引用类型,会完整复制一份。3.除了递归克隆对象、JSON.stringify两种方式做的拷贝,其他方法全部都是浅拷贝。一种函数调用自身的操作,在实现递归的函数中,往往都需要添加终止递归的条件。深拷贝 方式一: JSON.stringify 与 JSON.parse。深拷贝 方式三: 自己实现 递归。原创 2023-11-24 13:22:52 · 779 阅读 · 0 评论 -
js进阶笔记之作用域
作用域(scope)规定了变量能够被访问的“范围”,离开了这个“范围”变量便不能被访问,作用域分为全局作用域和局部作用域。原创 2023-11-23 13:44:24 · 277 阅读 · 0 评论 -
js进阶笔记之原型,原型链
对象都会有一个属性__proto__ 指向构造函数的 prototype 原型对象,之所以我们对象可以使用构造函数 prototype。原型:JS为每个构造函数提供一个属性prototype(原型),它的值是一个对象,prototype也叫原型对象。原型继承-----> 儿子的原型指向父实例对象,这样父实例对象的成员就可以实现继承。2、自身没有该成员,通过_proto_找到原型对象,看原型对象上有没有,有就执行。constructor 属性,原型对象的属性---->原型对象的构造函数。原创 2023-11-22 19:03:04 · 839 阅读 · 0 评论 -
js进阶笔记之构造函数
构造函数--->1.构造出对象的函数,2.将来通过new调用3.构造函数名首字母建议大写内置内构函数(Array,Date,Object)自定义构造函数定义学生构造函数//添加属性 this===创建出来的对象this.属性名=属性值this.方法名=funcion() { }//不需要写return,默认会返回this,假如显示指定return// return基本类型会被忽略, return引用类型将来new得到的也是该引用类型。原创 2023-11-21 16:03:01 · 518 阅读 · 0 评论 -
js数组其他的方法
没有指定初始值,prev第一次就指向数组第一个元素,current指向第二个元素,以后的 prev是上一次函数返回值。every对数组进行循环,所有元素都满足返回true,假如遇到第一个不满足的元素结束,返回false。findIndex( ) 查找满足条件的第一个元素的索引,找到就返回该元素的索引,找不到是-1。,这个新数组由原数组中的每个元素都调用一次提供的函数后的返回值组成。高阶函数----函数的参数接受一个函数或返回值是函数的函数。index -数组元素的索引。原创 2023-11-20 15:11:47 · 164 阅读 · 0 评论 -
js-WebApi笔记之BOM
像document、alert()、console.log()这些都是window的属性,基本BOM的属性和方法都是window的。history (历史)是对象,主要管理历史记录, 该对象与浏览器地址栏的操作相对应,如前进、后退等。window对象是一个全局对象,也可以说是JavaScript中的顶级对象。window对象下的属性和方法调用的时候可以省略window。navigator是对象,该对象下记录了浏览器自身的相关信息。以键值对的形式存储,并且存储的是字符串, 省略了window。原创 2023-11-20 15:13:26 · 351 阅读 · 0 评论 -
js-webApi 笔记2之DOM事件
常用事件对象属性 e.target---->事件源 e.key---->按键字符串。冒泡阶段: span-- > div-- > body-- > html-- > document。事件执行顺序 keydown ---->input ----->keyup。捕获阶段:document-- >html-->body-->div-->span。:给父元素添加事件来处理子元素,原理是使用冒泡 ,点击谁谁的背景颜色发生改变。scrollWidth 实际内容区域(包括隐藏的内容)原创 2023-11-18 08:23:10 · 705 阅读 · 0 评论 -
js-webApi笔记1
Web API 是浏览器提供的一套操作浏览器功能和页面元素的 API ( BOM 和 DOM )。文档对象模型(Document Object Model,简称DOM),是W3C组织推荐的处理可扩展标记语言(html或者xhtml)的标准编程接口。W3C 已经定义了一系列的 DOM 接口,通过这些 DOM 接口可以改变网页的内容、结构和样式。DOM是W3C组织制定的一套处理 html和xml文档的规范,所有的浏览器都遵循了这套标准。获取元素// 1 获取元素。原创 2023-11-16 08:15:53 · 1096 阅读 · 0 评论 -
js基础阶段知识点梳理
简单数据类型 (基本数据类型):字符串(string), 数值型(number), 布尔值(boolean), null undefined , symbol , bigint。return后面加上值,可以把值返回出来,如果值用逗号隔开的,值能返回最后一个值,如果值是数组就返回数组;== 相等 首先先把两个的数据类型转换为同一种数据类型,在进行值的对比,如果值不相等就返回false,否则返回true。数组名.splice(起始索引,删除元素个数,要添加的元素,要添加的元素,....)原创 2023-11-11 08:22:24 · 692 阅读 · 0 评论 -
js基础之对象
对象: 对象可以存储一个人完整的信息,对象里有属性和方法,是以键值对组成的js对象为了描述客观事物,如一本书,一个人,一只猫....语法:{ 属性名:值,属性名:值,属性名:值 } 若干个键(key)值(value)对。原创 2023-11-10 10:56:01 · 446 阅读 · 0 评论 -
js基础之函数
函数是具有某种功能的代码块,为了复用。定义function 函数名() {// 具体功能的代码实现语法: function 函数名(){// 函数体。原创 2023-11-07 16:02:06 · 1029 阅读 · 0 评论 -
js基础之数组的方法
元素,并返回该元素的值。此方法会更改数组的长度。原创 2023-11-04 09:11:37 · 240 阅读 · 0 评论 -
js基础之数组
数组(Array:就是一组数据的集合,每条数据也叫元素,可以 存放任意类型的数据,每个元素以逗号分隔.原创 2023-11-03 10:34:57 · 696 阅读 · 0 评论 -
js基础之流程控制语句
2 去找对应匹配(严格等于)的case,找到的话,执行该case冒号后面的语句,遇到break结束 或 遇到 }找不到匹配的case,则执行default,遇到break结束或遇到}while用的多点,do-while用的比较少,在特定场景会使用。2. 执行表达式2,表达式2的结果是true,则执行循环体。3. 循环体执行完毕,执行表达式3,然后再回到第二步。// 表达式 1 -> 变量初始化。// 表达式3 -> 改变循环变量。// 表达式2 -> 循环条件。原创 2023-11-02 08:20:50 · 354 阅读 · 0 评论 -
js基础之运算符,if语句
= 相等 首先先把两个的数据类型转换为同一种数据类型,在进行值的对比,如果值不相等就返回false,否则返回true。逻辑或||: 如果第一个表达式的值为真,则返回表达式1;比较运算符:== === 用比较运算符做判断时,返回的值是true或false。关系运算符有: >, < ,>=,原创 2023-11-01 09:30:41 · 490 阅读 · 0 评论 -
js基础之输入输出,变量,常量,数据类型及转换
编程语言(逻辑)html - 标记语言 - 负责页面内容css - 层叠样式表 - 美化样式js - 脚本语言(配合html网页) - 负责页面的交互、动画、表单校验...服务器程序 node。原创 2023-10-31 09:10:13 · 184 阅读 · 0 评论