- 博客(12)
- 收藏
- 关注
原创 js事件循环与浏览器事件模型(2025.12.29)
本文介绍了JavaScript的事件循环机制及其在浏览器和Node.js中的实现差异。浏览器事件循环通过微任务(如Promise)和宏任务(如setTimeout)实现异步处理,其中微任务优先级更高。Node.js事件循环分为六个阶段(Timers、I/O callbacks等),各阶段处理不同类型的异步任务。文章还对比了宏任务和微任务的区别,指出宏任务需要其他线程参与而微任务不需要。此外,简要介绍了JavaScript中的DOM/BOM对象和浏览器事件模型,包括事件订阅方式和传播机制。最后提醒setTim
2025-12-29 23:44:55
915
原创 Promise补充(2025.12.27)
本文介绍了如何手写实现Promise及其常用方法。通过定义CustomPromise类,实现了Promise的核心功能,包括三种状态管理(pending、fulfilled、rejected)以及then、catch、finally等链式调用方法。重点解析了静态方法:1) all在所有成功时返回结果数组,任一失败即返回第一个错误;2) allSettled会收集所有结果(成功/失败);3) race返回最快完成的结果;4) any在至少一个成功时返回最先成功结果,否则返回所有错误。这些方法各有特点,适用于不
2025-12-28 01:23:22
301
原创 函数式编程(2025.12.26)
摘要:本文探讨了函数式编程的发展历程和核心原理。从命令式、面向对象到函数式编程的演进,分析了函数式编程的四大特性:函数作为一等公民、声明式编程、惰性执行、无状态无副作用(纯函数)。重点阐述了函数组合的实现方式,通过compose函数将多个原子函数从右向左组合执行。最后介绍了函子(Functor)的概念,通过Mail类的map方法演示了如何在不修改原始数据的情况下进行数据转换。函数式编程强调数据不可变性和纯函数,通过函数组合实现复杂逻辑,避免状态管理和副作用带来的问题。
2025-12-27 01:07:04
666
原创 js模块化详解(2025.12.25)
本文梳理了JavaScript模块化的发展历程:从最初无模块化导致全局污染问题,到IIFE实现作用域隔离;随后出现服务端CJS规范和浏览器端AMD/CMD规范;最终ES6推出原生ESM方案。各阶段方案特点如下:1)IIFE通过函数作用域隔离代码;2)CJS采用同步require语法;3)AMD实现异步加载;4)CMD强调按需加载;5)ESM提供标准化的import/export语法。现代工具链如Webpack/Vite通过编译时分析优化了这些运行时方案。模块化演进反映了JS从脚本语言向工程化语言的发展需求。
2025-12-25 23:30:01
688
原创 Promise规范及应用(2025.12.24)
Promise是JavaScript中处理异步操作的解决方案,具有三种状态(pending/fulfilled/rejected)。通过then/catch方法处理成功/失败结果,支持链式调用。静态方法包括:resolve/reject快速创建Promise;all等待全部完成;race取最快结果;any取首个成功结果;allSettled获取所有结果。核心优势在于解决回调地狱问题,支持异步操作的并行/串行执行,通过状态机机制确保异步流程的可控性。
2025-12-24 23:54:31
803
原创 this指向,原型链,面向对象(2025.12.23)
1.在全局中this指向全局对象window2.在普通函数中普通函数调用this指向全局对象window3.在构造函数中this指向构造函数创建的实例对象4.通过对象调用this指向该对象本身5.在箭头函数中this继承外层最近的非箭头函数的词法作用域的this6.在dom事件对象中this指向改dom节点对象7.通过特殊方法call,apply,bind调用this指向指定的对象定义:通过构造函数fn创建的实例p,实例p.__proto__指向构造函数fn的原型对
2025-12-24 03:05:30
431
原创 解释作用域,预编译,闭包(2025.12.22)
作用域分为:var a=1;console.log(window.a===a)//输出true会挂在到window对象下使用window.avar b=1;//这个b不会挂到window上,只在a内部使用console.log(window.b)//输出undefined会挂在到window对象下使用window.a3.块级作用域(es6新增):当使用let或const定义变量时,用大括号【{}】包裹就会形成let a=1无法使用window.a,window.b获取使用词法解析语法提升。
2025-12-23 13:54:23
283
原创 中高级面试问:你使用过Promise吗?如何回答呢?
,这段代码能看懂吗,原理是通过async/await的await等待Promise的结果,为什么要这样写呢,以为我们要理解Promise啊,有其他实现方法,我们是通过保存每个Promise的reslove回调来控制代码的执行和停止,reslove就是一个回调并通知Promise执行完成,可以保存到其他变量,供外部控制调用。您可以设置最大并发数量,当达到最大并发数量时,新的文件处理任务会被加入等待队列,直到前面的文件处理任务完成后再执行。现场给你10分钟考虑实现。
2023-09-15 15:29:04
275
原创 前端如何快速部署个人项目
后端项目:是使用nodejs的express框架搭建,使用了一些中间件,像token的加密,解密,请求参数的序列化,全局错误管理器这些,监听了两个端口,一个是普通的web服务,还有就是即时通讯websocket服务,本来想集成音视频聊天通话的,但是想来必须使用第三方SDK集成推操作,数据掌控不稳妥就没使用。3.上传本地node文件,在上传node文件前,先把项目依赖,node-moudle去掉,太大了,压缩打包,在宝塔点击文件,上传文件,双击解压到wwwroot目录,进入目录打开终端,npm i下载依赖。
2023-04-04 14:54:05
470
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅