![](https://img-blog.csdnimg.cn/e6faf17f6b454469a208dd5edc8a4063.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Js篇
文章平均质量分 51
JS小碎片
程序员xiaolibao
编码过程中,知识总结...
展开
-
#Js篇:闭包&内存溢出&内存泄露&事件委托&事件循环&拷贝&作用域-作用域链
当在js中使用一个变量的时候,首先在js引擎会尝试在当前作用域下去寻找改变量,如果没有找到,再到它的上层作用域中去寻找,一次类型知道找到该变量或者已经到了全局作用域。你向系统申请内存进行使用,使用完以后不归还,结果你申请的内存自己也不能使用了,系统也不会将你申请的内存分配给其它的需要的内存。所有实例中引用的原型都是同一个对象。又叫事件代理,原理就是利用事件冒泡的机制来实现,也就说把子元素的事件绑定到父元素的身上。就是完全拷贝一份新的对象,会在堆中开辟新的空间,拷贝的对象被修改后,原对象不受影响。原创 2024-03-20 15:04:34 · 1065 阅读 · 0 评论 -
#Js篇:js里面递归的理解
递归是一种编程技术,它是指一个函数在其定义内部调用自身的过程。原创 2024-02-08 22:35:49 · 526 阅读 · 0 评论 -
#Js篇:字符串的使用方法es5和es6
字符串方法总结原创 2024-02-07 22:31:44 · 1403 阅读 · 0 评论 -
#Js篇:数组的方法es5和es6
数组方法学习。原创 2024-02-07 19:14:32 · 1661 阅读 · 0 评论 -
#Js篇:浅拷贝Object.assign()&扩展运算符 (...)&Array.slice() 和 Array.concat()||深拷贝JSON.parse(JSON.stringify())
return obj;// 非对象或 null 直接返回[] : {};// 创建新的对象或数组// 递归调用深拷贝。原创 2024-01-30 10:39:36 · 441 阅读 · 0 评论 -
#Js篇:闭包---能够读取其它函数内部变量的函数
外部读取局部变量定义:能够读取其它函数内部变量的函数。由于在Javascript语言中,只有函数内部的子函数才能读取局部变量,因此可以把闭包简单理解成"定义在一个函数内部的函数"。闭包(closure)是一个函数以及其捆绑的周边环境状态(词法环境)的引用的组合。换而言之,闭包让开发者可以从内部函数访问外部函数的作用域。在 JavaScript 中,闭包会随着函数的创建而被同时创建。// name 是一个被 init 创建的局部变量// displayName() 是内部函数,一个闭包。原创 2024-01-26 15:23:09 · 468 阅读 · 0 评论 -
#Js篇:基本数据类型(7)Null、Undefined、Boolean、String、Number、Symbol、Bigint&引用数据类型&类型判断方法
判断一个对象是否是某个构造函数的实例,对于引用类型非常有用,但对基本类型(如布尔值、数字、字符串、null、undefined 和 BigInt)无效。可以更准确地判断包括 null 和数组、函数等在内的复杂类型。以及对象(Object)原创 2024-01-23 10:30:51 · 464 阅读 · 0 评论 -
#Js篇:前端的设计模式有哪些
常见的前端设计模式。原创 2023-11-28 11:41:03 · 273 阅读 · 0 评论 -
#Js篇:async函数&&await 命令
是 Generator 函数的语法糖。Generator 函数的引入为 JavaScript 中异步编程提供了一种更为直观和易于理解的方式正常情况下,await命令后面是一个 Promise 对象,返回该对象的结果。如果不是 Promise 对象,就直接返回对应的值。原创 2023-11-25 14:54:16 · 1013 阅读 · 0 评论 -
#Js篇:Promise.all()&Promise.allSettled()&Promise.race()& Promise.any()
Promise是异步操作解决方案,为异步操作提供统一接口。Promise英文意思是“承诺”,表示其他手段无法改变。用于将多个Promise实例,包装成一个新的Promise实例。将多个Promise实例,包装成一个新的Promise实例。只有等到参数数组的所有 Promise 对象都发生状态变更(不管是fulfilled还是rejected),返回的 Promise 对象才会发生状态变更。上面示例中,数组promises包含的三个请求,只有等到三个请求都结束了,才会执行。原创 2023-11-25 14:17:39 · 1081 阅读 · 0 评论 -
#Js篇:单线程模式&&同步任务&&异步任务&&任务队列&&事件循环&&setTimeout()&& setInterval()
定义:是一种程序结构,用于处理任务队列中的任务。js运行时(浏览器)中存在一个主线程,事件循环负责不断的检查任务队列,如果任务队列中有任务,就将任务取出并执行。2、 常见的浏览器无响应—假死,往往就是因为某一段js代码长时间运行—比如死循环,导致整个页面卡在这个地方,其他任务无法执行。1、 只有一个任务耗时很长,后面的任务都必须排队等着,会拖延整个程序的执行。定义:被引擎放在一边,不进入主线程、而进入任务队列的任务。定义:没有被引擎难挂起、在主线程上执行的任务。定义:用来存放异步任务的队列。原创 2023-11-24 22:01:09 · 322 阅读 · 0 评论 -
#Js篇:并发(宏观概念) 和 并行(微观概念)&& 回调函数
并发并发指的是一个系统(或程序)能够同时处理多个任务或操作;这些任务可能在时间上有重叠,但是在同一时刻只能执行一个任务;任务之间可能通过时间片轮转或事件驱动的方式切换执行,实现过多个任务间交替执行;并行并行指的是系统(或程序)同时执行多个任务或操作;在同一时刻执行多个任务;任务是真正同时执行的回调函数定义:一个函数被作为参数传递给另一个函数,以便在某个特定事件发生或异步操作完成时执行;缺点:回调地狱:多个异步操作嵌套在一起时,代码可能变得难以理解和维护,形成回调地狱;解决办原创 2023-11-24 19:10:30 · 143 阅读 · 0 评论 -
#Js篇:为什么要使用模块化?都有哪几种方式可以实现模块化,各有什么特点?
模块化可以通过封装实现命名空间隔离,避免全局命名冲突,确保不同模块之间的变量和函数名不会发生冲突。模块化提供了良好的依赖管理机制,使得项目中的各个模块之间的依赖关系清晰可见,方便维护和升级。模块化可以帮助开发者更好地组织代码,将代码拆分成独立的模块,提高代码的可维护性和可读性。模块化使得代码更易于复用。可以将一些通用的功能封装成模块,在不同的项目中重复使用。模块化可以支持异步加载,按需加载模块,提高页面加载速度和性能。原创 2023-11-24 15:33:22 · 71 阅读 · 0 评论 -
#Js篇:var、let和 const
---对于使用 const 声明的对象或数组,虽然不能重新赋值一个新的对象或数组给这个变量,但可以修改对象或数组的属性或元素。这是因为 const 保证的是变量指向的引用不变,而不是引用的值不变。5. 声明的变量不会成为全局对象的属性。6. 暂时性死区内访问会抛出错误。原创 2023-11-24 11:30:31 · 52 阅读 · 0 评论 -
#Js篇:JSON.stringify 、 toString()和String的区别
这个类似白名单的数组,只对对象的属性有效,对数组无效。原创 2021-04-24 10:59:09 · 1367 阅读 · 0 评论 -
#Js篇:防抖与节流
触发高频事件后n秒内函数只会执行一次,如果n秒内高频事件再次被触发,则重新计算时间高频事件触发,但在n秒内只会执行一次,所以节流会稀释函数的执行频率。原创 2021-05-18 22:14:19 · 163 阅读 · 0 评论 -
#Js篇:包装对象的自定义方法
比如,我们可以新增一个double方法,使得字符串和数字翻倍。上面代码在String和Number这两个对象的原型上面,分别自定义了一个方法,从而可以在所有实例对象上调用。注意,最后一行的123外面必须要加上圆括号,否则后面的点运算符(.)会被解释成小数点。原创 2023-03-06 22:30:40 · 68 阅读 · 0 评论 -
#Js篇:Boolean 函数的类型转换作用
是因为false对应的包装对象实例是一个对象,进行逻辑运算时,被自动转化成布尔值true(因为所有对象对应的布尔值都是true)原创 2023-03-06 22:31:39 · 150 阅读 · 0 评论 -
#Js篇:Object.prototype.hasOwnProperty()和对象的存取器-用法介绍
上面代码中,对象obj自身具有p属性,所以返回true。toString属性是继承的,所以返回false。原创 2022-04-19 09:27:59 · 148 阅读 · 0 评论 -
#Js篇:判断数据类型的方法
利用这个特性,可以写出一个比typeof运算符更准确的类型判断函数。原创 2022-04-19 09:28:29 · 37 阅读 · 0 评论 -
#Js篇:es5特殊用法的学习
var 生命变量名相同的话 声明两次 第二次会覆盖掉第一次的赋值;var 变量存在变量提升单行注释 // ;多行注释/* */swithchswitch语句后面的表达式,比较时采用的是严格相等运算符,不会进行类型的转换var x =3 switch(x) { case 1: alert(1); break; case 2: alert(2) break; default: alert("ss") }三元运算符(条件)?表达.原创 2021-11-26 21:08:33 · 512 阅读 · 0 评论 -
#Js篇:Object对象怎么筛选出为空的属性
【代码】#Js篇:Object对象怎么筛选出为空的属性。原创 2022-04-24 22:12:23 · 782 阅读 · 0 评论 -
#Js篇:export & import、export default & import、exports & require的用法总结
众所周知:如果我们是export default的话,我们import的时候无需写{},直接进行导入就可以了,但是其实我们有多种导入选择。5、export可以向外暴露多个成员,同时,如果某些成员,在import导入时不需要,可以不在{ }中定义。4、使用export向外暴露的成员,只能使用{ }的形式来接收,这种形式,叫做【按需导出】6、使用export导出的成员,必须严格按照导出时候的名称,来使用{ }按需接收。7、使用export导出的成员,如果想换个变量名称接收,可以使用as来起别名。原创 2021-12-30 17:34:01 · 6640 阅读 · 0 评论