学习汇总1

1.this和箭头函数的this指向{
箭头函数this指向父级
2.深浅拷贝{
浅拷贝:只拷贝栈内存浅拷贝仅仅复制所考虑的对象,而不复制它所引用的对象,如果你修改了“副本”的值,那么原来的对象也会被修改,
object.ossgin() 三点运算符只能深拷贝一层,数组concat

深拷贝:拷贝堆和栈,深拷贝把要复制的对象所引用的对象都复制了一遍。如果你修改了“副本”的值,那么原来的对象不会被修改,两者是相互独立的。
JSOn.parse不能拷贝(正则,日期,和funtion),递归

3.防抖和节流(闭包实际运用)
防抖:在事件被触发n秒之后执行,如果在此期间再次触发事件,则重新开始计时。

停止输入一秒后打印//搜索模糊匹配案例

function getPhone(fn,delay){
let timer;
// 使用闭包,保证每次使用的定时器是同一个
return (d)=>{
clearTimeout(timer);
timer = setTimeout(()=>{
fn(d);
// 结束之后清除定时器
clearTimeout(timer);
},delay)
}
}

节流:如果持续触发一个事件,则在一定的时间内只执行一次事件。

function nextShot(fn,delay){
let timer;
// 闭包原理同上
return ()=>{
// 定时器存在,无法射击
if(timer){
console.log('禁止射击');
}else{ // 定时器不存在,射击,并设置定时器
fn();
timer = setTimeout(()=>{
// 定时器结束,可以射击
clearTimeout(timer);
timer = null;
},delay)
}
}
}
4.作用域
AO,函数作用域
GO全局作用域

funtion a(){
var aa=111
return function b(){
var bb=222
}

}

var c= a()
c()

a执行的时候 b定义
都指向一条作用域链
a执行完毕断开链
b依然能访问
AO -》a:111,b:function

5.argument (类数组对象)
类数组用展开运算符转为数组对象
6.时间循环机制
eventloop

fetch settimeout setINterval
里面操作会进消息队列中
等调用栈完全执行完毕再执行消息队列

promise async awit
异步操作会进微任务在调用栈清空时立即执行
调用栈的微任务也会立即执行
微任务比消息队列先执行

7.发布-订阅模式

复制代码
var shoeObj = {}; // 定义发布者
shoeObj.list = []; // 缓存列表 存放订阅者回调函数

// 增加订阅者
shoeObj.listen = function(fn) {
shoeObj.list.push(fn); // 订阅消息添加到缓存列表
}

// 发布消息
shoeObj.trigger = function(){
for(var i = 0,fn; fn = this.list[i++]😉 {
fn.apply(this,arguments);
}
}
// 小红订阅如下消息
shoeObj.listen(function(color,size){
console.log("颜色是:"+color);
console.log("尺码是:"+size);
});

// 小花订阅如下消息
shoeObj.listen(function(color,size){
console.log("再次打印颜色是:"+color);
console.log("再次打印尺码是:"+size);
});
shoeObj.trigger("红色",40);
shoeObj.trigger("黑色",42);

可实现组件间传值

posted @   木头小屋  阅读(34)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
点击右上角即可分享
微信分享提示