- 博客(21)
- 收藏
- 关注
原创 闭包就是能访问到外部函数作用域中变量的函数
1. 闭包在外部函数调用时产生,外部函数每次调用都会产生一个全新的闭包。2. 在内部函数丢失时销毁(内部函数被垃圾回收了,闭包才会消失)相较于类来说,闭包比较浪费内存空间(类可以使用原型而闭包不能),当我们需要隐藏一些不希望被别人访问的内容时就可以使用闭包。闭包主要用来隐藏一些不希望被外部访问的内容,这就意味着闭包需要占用一定的内存空间。闭包就是能访问到外部函数作用域中变量的函数。2. 内部函数要引用外部函数中的变量。需要执行次数较少时,使用闭包。闭包:闭包利用的就是词法作用域。
2025-05-15 23:04:25
212
原创 高阶函数一个函数的参数或返回值是函数
将函数作为参数,意味着可以对另一个函数动态的传递代码。- 为什么要将函数作为参数传递?(回调函数有什么作用?如果一个函数的参数或返回值是函数,则这个函数就称为高阶函数。
2025-05-15 15:04:25
208
原创 数组拷贝 浅拷贝和深拷 对象复制
浅拷贝只会对对象本身进行复制,不会复制对象中的属性(或元素)- 浅拷贝顾名思义,只对对象的浅层进行复制(只复制一层)- 如果对象中存储的数据是原始值,那么拷贝的深浅是不重要。- 深拷贝指不仅复制对象本身,还复制对象中的属性和元素。- 因为性能问题,通常情况不太使用深拷贝。- 通常对对象的拷贝都是浅拷贝。深拷贝(deep copy)浅拷贝(shallow copy)
2025-05-15 14:25:20
314
原创 数组中常用的方法
["孙悟空", "猪八戒", "沙和尚", "唐僧", "沙和尚"] -> "孙悟空,猪八戒,沙和尚,唐僧,沙和尚"- 非破坏性方法,不会影响原数组,而是返回一个新的数组。- 遍历数组简单理解,就是获取到数组中的每一个元素。- 向数组的末尾添加一个或多个元素,并返回新的长度。- 向数组的开头添加一个或多个元素,并返回新的长度。- 获取元素在数组中最后一次出现的位置。- 将一个数组中的元素连接为一个字符串。- 可以根据索引获取数组中的指定元素。- 获取元素在数组中第一次出现的索引。
2025-05-15 12:59:26
365
原创 instanceof in hasOwnProperty Object.hasOwn
Object是所有对象的原型,所以任何和对象和Object进行instanceof运算都会返回true。- 使用in运算符检查属性时,无论属性在对象自身还是在原型中,都会返回true。- instanceof检查的是对象的原型链上是否有该类实例。- 用来检查一个对象的自身是否含有某个属性。- 用来检查一个对象的自身是否含有某个属性。只要原型链上有该类实例,就会返回true。对象.hasOwnProperty(属性名) (不推荐使用)用来检查一个对象是否是一个类的实例。
2025-05-08 19:33:07
150
原创 原型链和原型链存在的意义
原型对象也有原型,这样就构成了一条原型链,根据对象的复杂程度不同,原型链的长度也不同。在对象中有些值是对象独有的,像属性(name,age,gender)每个对象都应该有自己值,p对象的原型链:p对象 --> 原型 --> 原型 --> null。当我们访问对象中的属性时,会优先访问对象自身的属性,- 对象中还有一些内容,会存储到其他的对象里(原型对象)如果对象中有,则使用,没有则去对象的原型中寻找。如果原型中有,则使用,没有则去原型的原型中寻找。对象自身不包含该属性时,才会去原型对象中寻找。
2025-05-08 16:06:54
457
原创 类Class
如果某个对象是由某个类所创建,则我们称该对象是这个类的实例。1. 类是对象模板,可以将对象中的属性和方法直接定义在类中。class 类名 {} // 类名要使用大驼峰命名。2. 通过同一个类创建的对象,我们称为同类对象。const 类名 = class {}定义后,就可以直接通过类来创建对象。类的代码块是用来设置对象的属性的,不是什么代码都能写。来检查一个对象是否是由某个类创建。类的代码块,默认就是严格模式,
2025-05-07 17:54:03
253
原创 this 指向
2. 以方法形式调用,this指向调用方法的对象。只返回一个对象的函数:() => ({...})箭头函数没有自己的this,它的this有外层作用域决定。多个参数的:(a, b) => 返回值。只有一个语句的函数:() => 返回值。函数在执行时,JS解析器每次都会传递进一个隐含的参数,this。无参箭头函数:() => 返回值。有多行语句的函数:() => {一个参数的:a => 返回值。箭头函数的this和它的调用方式无关。([参数]) => 返回值。- this 可以在方法中调用方法的对象。
2025-05-07 15:35:39
137
原创 立即执行函数
可以利用IIFE来创建一个一次性的函数作用域,避免变量冲突的问题。- 立即是一个匿名的函数,并它只会调用一次。如果使用let声明的变量,可以使用{}来创建块作用域。在开发中应该尽量减少直接在全局作用域中编写代码!所以我们的代码要尽量编写的局部作用域。立即执行函数(IIFE)
2025-05-06 18:45:15
139
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅