当前位置: 首页 > news >正文

javascript 补充的一些知识点

函数对象与实例对象

  • 函数对象
    将函数作为对象使用时,简称为函数对象
  • 实例对象
    new 函数产生的对象,简称为对象
function Fn(){  //Fn 函数}
const fn= new Fn(); //此时的Fn是构造函数 ,fn 是实例对象(简称对象)
console.log(11,Fn.prototype) // Fn是函数对象
Fn.bind({}) // 这个是函数对象调用的方法

JS 的error 处理

类型

  • Error
    所有错误的父类型
  • ReferenceError
    引用的变量不存在
  • TypeError
    数据类型不正确的错误
  • RangeError
    数据值不在其所允许的范围内
  • SyntaxError
    语法错误

错误处理

  • 捕获错误
try{}catch(e){
}
  • 抛出错误
throw 

错误对象

  • message属性
    错误相关信息
  • stack属性
    函数调用栈记录信息

JS 异步之宏队列与微队列

在这里插入图片描述
在 JavaScript 的异步机制中,宏队列(Macro Task Queue) 和 微队列(Micro Task Queue) 是两个非常重要的概念,它们决定了异步代码的执行顺序。

事件循环(Event Loop)

JavaScript 是单线程的,它通过 事件循环(Event Loop) 来处理异步任务。事件循环的大致过程如下:
1. 执行全局同步代码(主线程执行栈)。
2. 清空 微队列。
3. 执行一个 宏任务(从宏队列取出)。
4. 清空 微队列。
5. 重复 3-4。

微队列(Micro Tasks)

常见的微任务来源:
• Promise.then / catch / finally
• MutationObserver
• queueMicrotask

微任务的特点是:在当前宏任务执行完后立即执行,优先级高于宏任务中的其他异步任务。

宏队列(Macro Tasks)

常见的宏任务来源:
• setTimeout
• setInterval
• setImmediate(Node.js)
• MessageChannel
• I/O 操作
• requestAnimationFrame(浏览器专用)

宏任务的特点是:每轮事件循环只会执行一个宏任务,之后才会执行微任务。

执行顺序示例

下面是一个典型的例子:

console.log('start');setTimeout(() => {console.log('setTimeout');
}, 0);Promise.resolve().then(() => {console.log('promise');
});console.log('end');

执行顺序解析:
1. 输出 ‘start’
2. 注册 setTimeout(宏任务)
3. 注册 promise.then(微任务)
4. 输出 ‘end’
5. 清空微队列,输出 ‘promise’
6. 执行 setTimeout 回调,输出 ‘setTimeout’

最终输出顺序:

start
end
promise
setTimeout

在这里插入图片描述

http://www.dtcms.com/a/181548.html

相关文章:

  • 利用混合磁共振成像 - 显微镜纤维束成像技术描绘结构连接组|文献速递-深度学习医疗AI最新文献
  • Element-UI字体图标不显示
  • Jedis高版本的JedisPoolConfig没有maxActive和maxWait
  • Java中的反射
  • T-SQL在SQL Server中判断表、字段、索引、视图、触发器、Synonym等是否存在
  • MCP协议将颠覆传统数据集成
  • 2025-05-09 提示学习概念
  • QML AnimatedImage组件详解
  • 【动手学大模型开发 20】使用 Streamlit 部署大模型 RAG应用
  • C++跨平台开发实践:深入解析与常见问题处理指南
  • 西门子PLC串口转网口模块:工业通信的智能桥梁
  • 25FIC初赛(介质)
  • BUUCTF——杂项渗透之赛博朋克
  • 视频流:大华及海康视频流本地测试预览
  • 单调栈所有模版类型(4)
  • Windows11下通过Docker安装Redis
  • A2A与MCP定义下,User,Agent,api(tool)间的交互流程图
  • 工业相机的作用及未来发展
  • spring ai alibaba ChatClient 获取大模型返回内容的方式 以及使用场景
  • 多分类问题softmax传递函数+交叉熵损失
  • [特征工程]机器学习-part2
  • 物流基础知识-术语 | 医药物流(1)
  • 操作系统面试题(3)
  • 北斗导航 | RTKLib中重难点技术,公式,代码
  • RISC-V AIA SPEC学习(五)
  • NWD 格式转换 STL 全流程:专业方案与迪威模型网在线转换详解
  • Filecoin存储管理:如何停止Lotus向特定存储路径写入新扇区数据
  • 21.第二阶段x64游戏实战-分析采集物偏移
  • 工业软件自主化突围:RTOS 如何打破 “协议栈 - 控制器” 生态垄断
  • MapStruct用法实战