一.Promise入门准备阶段
一.Promise入门准备阶段
1.区别实例对象呵函数对象
- 实例对象: new 函数产生的对象,称为实例对象,简称为对象
- 函数对象:将函数作为对象使用时,简称为函数对象
function F() { //F函数
}
const f = new F() //F是构造函数,f是实例对象,简称为对象
console.log(F.prototype) //F是函数对象
F.call({}) //F是函数对象
$("#root") //jQuery函数
$.get('./test') //jQuery函数对象
2.两种类型的回调函数(同步与异步)
2.1 同步回调
理解:立即执行,完全执行完了才结束,不会放入回调队列中
例子:数组遍历相关的回调函数 / Promise的excutor函数
const arr = [1, 2, 3];
arr.forEach(item => { //遍历回调,同步回调函数,不会放入队列,一上来就执行
console.log(item);
});
console.log("forEach()之后");
2.2 异步回调
- 理解:不会立即执行,会放入回调队列中将来执行
- 例子:定时器回调 / ajax回调 / Promise的成功|失败的回调
setTimeout( () => { //异步回调函数,会放入队列中将来执行
console.log("timeout callback()");
}, 0);
console.log("setTimeout()之后");
3.JS的error处理
3.1 错误的类型
Error:所有错误的父类型
ReferenceError:引用的变量不存在
TypeError:数据类型不正确的错误
RangeError:数据值不在其所允许的范围内
SyntaxError:语法错误
// 常见的内置错误
// 1.ReferenceError:引用的变量不存在
console.1og(a) // ReferenceError: a is not defined
console.log('-----')// 没有捕获error,下面的代码不会执行
// 2.TypeErron: 数据类型不正确的错误
let b
console.1og(b.xxx) // TypeError: Cannot read property "XXX" of undefined
b=0
b.xxx()// TypeError:b.xxx is not a function
// 3.RangeError: 数据值不在其所允许的范围内
function fn(){
fn()
}
fn() // RangeError:Maximum call stack size exceeded
// 4.SyntaxError:语法错误
const c ="""" // SyntaxError:Unexpected string
3.2 错误处理与错误对象
错误处理:
捕获错误: try … catch
抛出错误:throw error
错误对象:
- message属性:错误相关信息
- stack属性:函数调用栈记录信息
在捕获错误时进入调试模式,可以看到:

// 错误处理
// 捕获错误:try ...catch
try {
let d;
console.log(d.xxx);
} catch (error) {
console.log(error);
console.log(error.message)
console.log(error.stack)
}
console.1og('出错之后');
// 抛出错误:throw error
function something() {
if(Date.now()%2===1) {
console.1og('当前时间为奇数,可以执行任务');
}
else {
throw new Error('当前时间为偶数无法执行任务')//传入message
}
}
// 捕获处理异常
try {
something()
} catch (error) {
alert(error.message)
}
一.Promise入门准备阶段的更多相关文章
- Promise入门到精通(初级篇)-附代码详细讲解
Promise入门到精通(初级篇)-附代码详细讲解 Promise,中文翻译为承诺,约定,契约,从字面意思来看,这应该是类似某种协议,规定了什么事件发生的条件和触发方法. Pr ...
- promise入门基本使用
Promise入门详解和基本用法 异步调用 异步 JavaScript的执行环境是单线程. 所谓单线程,是指JS引擎中负责解释和执行JavaScript代码的线程只有一个,也就是一次只能完成一项任 ...
- Javascript Promise入门
是什么? https://www.promisejs.org/ What is a promise? The core idea behind promises is that a promise r ...
- 移动开发 android 入门开发 阶段视频
一直想把 android 的开发学习录制成视频,这里录制了一部分供大家学习. http://www.chuanke.com/s5402069.html 到这里,文档,源码,视频基本就全了,祝愿大家能够 ...
- promise入门demo
<!DOCTYPE html> <html> <head> <title></title> </head> <body&g ...
- HoloLens开发手记 - 入门学习阶段总结
伴随着数月的期待,终于拿到了预订的HoloLens开发者版本套件.随着VR/AR/MR技术的热潮,国内外均对它们的应用与盈利前景持有积极的预期,这也直接导致了国内外当前投资VR/AR/MR技术的热潮. ...
- javaScript Promise 入门
Promise是JavaScript的异步编程模式,为繁重的异步回调带来了福音. 一直以来,JavaScript处理异步都是以callback的方式,假设需要进行一个异步队列,执行起来如下: anim ...
- Promise 入门与使用
Tags: ECMAScript6 参考资料 promises-book Promise对象 we-have-a-problem-with-promises Promise最初被提出是在 E语言中, ...
- Promise入门详解
异步调用 异步 JavaScript的执行环境是单线程. 所谓单线程,是指JS引擎中负责解释和执行JavaScript代码的线程只有一个,也就是一次只能完成一项任务,这个任务执行完后才能执行下一个,它 ...
随机推荐
- SVN服务器的环境搭建(图文并茂)
SVN服务器的搭建与使用 本章读完,就可以创建代码版本库,传送门 https://www.cnblogs.com/zzpython/p/13348009.html TortoiseSVN 是 Subv ...
- Java 集合基础入门,看这篇就够了
集合 1.父接口:Collection java.util.Collection 是进行单对象保存的最大父接口,即每次利用 Collection 接口都只能保存一个对象信息.定义如下: public ...
- Windows下的程序及热键监视神器——Spy++
Windows下的程序及热键监视神器--Spy++ 背景 在使用Windows的时候,偶尔会发现某些应用程序的热键不生效了:又或是桌面弹出了弹框却并不知道这个弹框来自何处.例如,本人最近使用Vim的时 ...
- Docker 常见命令
Docker 运行流程 辅助命令 # 1.安装完成辅助命令 docker version -------------------------- 查看docker的信息 docker info ---- ...
- 对cpu与load的理解及线上问题处理思路
cpu如何计算 当我们执行top命令的时候,看到里面的值(主要是cpu和load)值是一直在变的,因此有必要简单了解一下Linux系统中cpu的计算方式. cpu分为系统cpu和进程.线程cpu,系统 ...
- EMC测试国家标准GB/T 17626
转载: 详解EMC测试国家标准GB/T 17626 - whik - 博客园 (cnblogs.com)
- mac无坑安装nginx
mac无坑安装nginx 首先需要mac下有一个缺失的软件包的管理器------->homebrew 1.打开终端输入 brew update 说明homebrew已经安装好了 2.继续执行以下 ...
- 论文解读丨表格识别模型TableMaster
摘要:在此解决方案中把表格识别分成了四个部分:表格结构序列识别.文字检测.文字识别.单元格和文字框对齐.其中表格结构序列识别用到的模型是基于Master修改的,文字检测模型用到的是PSENet,文字识 ...
- 【二食堂】Beta - 项目展示
项目展示 1. 团队介绍 二食堂很难排队 姓名 介绍 职务 刘享 热爱游戏,尤其是RPG和metrovinia类的游戏. 会C/C++, python, java. 后端 左正 一个普通的大学生,Py ...
- Sharding-JDBC自定义复合分片算法
Sharding-JDBC自定义复合分片算法 一.背景 二.需求 1.对于客户端操作而言 2.对于运营端操作而言 三.分片算法 1.客户id和订单id的生成规则 2. 确定数据落在那个表中 3.举例说 ...