
一.Promise入门准备阶段
message:错误相关信息。 stack:函数调用栈记录,进入调试模式时可以查看调用链。
发布日期:2021-05-27 05:11:38
浏览次数:24
分类:精选文章
本文共 1888 字,大约阅读时间需要 6 分钟。
Promise入门准备阶段
区别实例对象和函数对象
在JS中,实例对象和函数对象是两个常见的概念,它们的理解对于掌握对象编程至关重要。
实例对象:使用
new
关键字创建的对象,简称为“对象”。例如:const F = function () {};const f = new F();
这里,
F
是构造函数,f
是实例对象。函数对象:将函数作为对象使用时所使用的概念。函数本身也可以被当作对象,例如:
console.log(F.prototype); // F 是函数对象F.call({}); // F 是函数对象
理解这两者的区别有助于更好地理解JS对象模型。
回调函数的两种类型
同步回调
同步回调指的是立即执行的回调函数,它不会被放入回调队列。一旦被调用,会立即完成执行任务,接着执行后续代码。
例子:
const arr = [1, 2, 3];arr.forEach(item => { console.log(item);});console.log("forEach()之后");
在这个例子中,每个回调函数在 forEach
追踪数组元素时会立即执行,完成后,下一行的 console.log
会立即执行。
异步回调
异步回调则不是立即执行的,它们会被放入回调队列中,等到事件循环完成后才执行回调函数。
例子:
setTimeout(() => { console.log("timeout callback()");}, 0);console.log("setTimeout()之后");
在这段代码中,setTimeout
会立即被执行,并将回调函数 () => { ... }
放入回调队列中。console.log("setTimeout()之后");
会在回调函数执行前先完成。异步回调的特点是不会阻塞当前执行线程,它会等待当前线程完成任务后继续执行。
JS的错误处理
错误类型
在JS中,错误是用来报告编程错误和异常的。常见的内置错误类型包括:
- Error:所有错误的父类型。
- ReferenceError:引用不存在的变量。
- TypeError:数据类型不正确。
- RangeError:数据值超出允许范围。
- SyntaxError:代码有语法错误。
示例:
// ReferenceErrorconsole.log(a); // ReferenceError: a is not defined// TypeErrorlet b;b.xxx();// TypeError: b.xxx is not a function// RangeErrorfunction fn() { fn();}fn();// RangeError: Maximum call stack size exceeded// SyntaxErrorconst c = "";cgmt;// SyntaxError: Unexpected string
错误处理与错误对象
JS 提供了try...catch 语法来捕获和处理错误。捕获错误可以避免应用程序崩溃,并为开发者提供调试信息。
捕获错误:
try { let d; console.log(d.xxx);} catch (error) { console.log(error); console.log(error.message); console.log(error.stack);}
上述代码会捕获 TypeError
并打印错误的信息。如果出现文件未找到错误:
try { something();} catch (error) { alert(error.message);}
抛出错误:
function something() { if (Date.now() % 2 === 1) { console.log("当前时间为奇数,可以执行任务"); } else { throw new Error("当前时间为偶数无法执行任务"); }}try { something();} catch (error) { alert(error.message);}
在上述代码中,something
函数会在时间为偶数时抛出错误,并被 try...catch
坓轰。
错误对象
错误对象 (error
) 具有以下属性:
这些属性为开发者提供了定位错误源的重要线索。
发表评论
最新留言
哈哈,博客排版真的漂亮呢~
[***.90.31.176]2025年04月17日 17时38分58秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
程序员都看不懂的代码
2023-01-23
LLM+多智能体协作:基于CrewAI与DeepSeek的邮件自动化实践
2023-01-23
404页面自动跳转源码
2023-01-23
46:把数字翻译成字符串(动态规划)
2023-01-23
500套精美Logo样机模板可直接套用、轻松制作炫酷logo
2023-01-23
ASP.NET MVC4 json序列化器
2023-01-23
@ResponseBody 和 @RequestBody
2023-01-23
A + B 九度oj
2023-01-23
A20地址线
2023-01-23
abaqus质量缩放系数取值_ABAQUS的质量缩放
2023-01-23
Accessibility
2023-01-23
CentOS 系列:CentOS 7文件系统的组成
2023-01-23
Docker部署postgresql-11以及主从配置
2023-01-23
EnvironmentNotWritableError: The current user does not have write permissions to the target environm
2023-01-23
kali安装docker(亲测有效)
2023-01-23