迭代器是遵循特定协议的对象,通过 next() 方法依次访问容器元素,返回 { done, value } 对象。可迭代对象需实现 [Symbol.iterator] 方法返回迭代器,使对象支持 for...of 等迭代操作。原生如数组、字符串、Set 等已实现该协议。应用场景包括 for...of 循环、展开运算符、解构赋值等。通过自定义 [Symbol.iterator] 方法,可将普通对象转为可迭代对象,实现更灵活的遍历控制。
辰风沐阳 阅读 364 2026-02-05
JavaScript 任务机制解析:同步任务按顺序执行并阻塞后续代码;异步任务分为宏任务(setTimeout/ajax)和微任务(Promise.then),后者优先级更高。定时器存在最小 4 毫米延迟,其回调需等待同步任务完成。DOM渲染受任务执行顺序影响,可通过调整脚本位置优化。复杂计算任务可拆分为子任务放入异步队列避免阻塞。示例展示了进度条动画和数值累加的实现,体现了任务队列的轮询机制。
辰风沐阳 阅读 306 2026-01-30
WebSocket 是一种基于 TCP 的全双工通信协议,允许客户端和服务器建立持久连接,实现高效实时数据交换。全双工通信:客户端和服务器可随时主动发送数据,无需遵循传统 HTTP 的 “请求-响应” 模式。本文还记录了 WebSocket 的心跳检测以及重连机制,主要提供一个思路,实际开发中可以自行修改
辰风沐阳 阅读 522 2026-01-12
JSON 是一种独立于编程语言的轻量级数据交换格式,由 Douglas Crockford 设计。它支持简单值、对象值和数组值三种顶层结构,广泛应用于配置文件、网络数据传输和 NoSQL 数据库存储。JSON 序列化(stringify)和解析(parse)方法可以实现数据转换,其中 stringify 方法支持通过参数控制转换内容和格式化输出。JSON 还可用于对象深拷贝,但不支持函数值的转换。这些特性使 JSON 成为现代开发中不可或缺的数据格式。
辰风沐阳 阅读 464 2025-03-20
本文用于记录 JS 设备检测相关功能函数,比如:检测当前设备是电脑端还是移动设备、当前设备是否为 ios 端。每个功能函数都已经过测试,保证可以使用。本文已会持续更新,不断增加新的功能函数和完善功能方法
辰风沐阳 阅读 2365 2024-05-07
本文介绍了 JavaScript 中 Promise 的基础用法和核心概念。首先分析了传统回调函数的弊端,然后详细讲解了 Promise 的基本使用方式,包括创建 Promise对象、then 和 catch 方法的使用。文章还阐述了 Promise 的三种状态(pending、fulfilled、rejected)及其不可变性。重点解析了 resolve 方法的参数类型,包括普通值、其他 Promise 对象和 thenable 对象。
辰风沐阳 阅读 536 2024-02-03
当你想了解 electron 时,在安装时可能会遇到一些问题,也许在安装这一步就能劝退一部分前端新手。当安装 electron 依赖比较慢时,执行安装依赖命令时可以使用 ELECTRON_MIRROR 参数指定镜像源,mac 系统安装依赖可能会提示没有权限,命令前面使用 sudo 前缀即可
辰风沐阳 阅读 5745 2023-12-30
npm init 命令会生成一个 package.json 文件,该文件用来记录当前项目的详细信息。package.json 中记录着项目的详细信息和所使用的依赖包等信息,别人根据该文件执行 npm install 就可以将项目依赖全部下载到项目里,方便以后维护和移植
辰风沐阳 阅读 2229 2023-11-21
Electron 是桌面应用程序框架,它兼容 Mac、Windows、Linux,可以构建出三个平台的应用程序。学习的好处:开发的应用程序,可以上架到应用商店获得收益,可以开发一些桌面小工具,也可以提高应聘时的竞争力,提高开发者的综合能力
辰风沐阳 阅读 1987 2023-11-21
nvm 全称 node version manager,也就是 node 版本管理工具,本文记录的是 windows 版本的 nvm,也就是 nvm-windows,并不是适用于 mac,windows 版本的 nvm 是低配版的 nvm,不如 mac 版本的 nvm 功能强大
辰风沐阳 阅读 1691 2023-11-15