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入门准备阶段的更多相关文章

  1. Promise入门到精通(初级篇)-附代码详细讲解

    Promise入门到精通(初级篇)-附代码详细讲解 ​     Promise,中文翻译为承诺,约定,契约,从字面意思来看,这应该是类似某种协议,规定了什么事件发生的条件和触发方法. ​     Pr ...

  2. promise入门基本使用

    Promise入门详解和基本用法   异步调用 异步 JavaScript的执行环境是单线程. 所谓单线程,是指JS引擎中负责解释和执行JavaScript代码的线程只有一个,也就是一次只能完成一项任 ...

  3. Javascript Promise入门

    是什么? https://www.promisejs.org/ What is a promise? The core idea behind promises is that a promise r ...

  4. 移动开发 android 入门开发 阶段视频

    一直想把 android 的开发学习录制成视频,这里录制了一部分供大家学习. http://www.chuanke.com/s5402069.html 到这里,文档,源码,视频基本就全了,祝愿大家能够 ...

  5. promise入门demo

    <!DOCTYPE html> <html> <head> <title></title> </head> <body&g ...

  6. HoloLens开发手记 - 入门学习阶段总结

    伴随着数月的期待,终于拿到了预订的HoloLens开发者版本套件.随着VR/AR/MR技术的热潮,国内外均对它们的应用与盈利前景持有积极的预期,这也直接导致了国内外当前投资VR/AR/MR技术的热潮. ...

  7. javaScript Promise 入门

    Promise是JavaScript的异步编程模式,为繁重的异步回调带来了福音. 一直以来,JavaScript处理异步都是以callback的方式,假设需要进行一个异步队列,执行起来如下: anim ...

  8. Promise 入门与使用

    Tags: ECMAScript6 参考资料 promises-book Promise对象 we-have-a-problem-with-promises Promise最初被提出是在 E语言中, ...

  9. Promise入门详解

    异步调用 异步 JavaScript的执行环境是单线程. 所谓单线程,是指JS引擎中负责解释和执行JavaScript代码的线程只有一个,也就是一次只能完成一项任务,这个任务执行完后才能执行下一个,它 ...

随机推荐

  1. 封装excel导出方法

    封装读取excel内容方法 /** * 获取Excel内容 * @param type $filename * @return type */ public function getExcelCont ...

  2. js运行机制 值引用 值传递

    1.js是单线程的  为什么是单线程的呢  因为js作为浏览器脚本语言,会有很多和用户的互动,以及操作dom,多个线程会出问题. 2.js有同步任务,异步任务(ajax,用户点击等,settimeou ...

  3. Win10删除电脑3D对象等7个文件夹

    把下面几个注册表项依次删除掉 "图片"文件夹:[-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Expl ...

  4. ASP.NET Core 5.0 中读取Request中Body信息

    ASP.NET Core 5.0 中读取Request中Body信息 记录一下如何读取Request中Body信息 public class ValuesController : Controller ...

  5. 关于国密HTTPS 的那些事(二)

    关于国密HTTPS 的那些事(二) 三. 需要解决的问题 前文我们了解了https,并梳理了国密https的流程.那么完成这些流程的目的是什么呢?又是怎么来保护数据的安全性呢?我们继续... 上文我们 ...

  6. 洛谷P7078 [CSP-S2020] 贪吃蛇 题解

    比赛里能做出这题的人真的非常厉害,至少他的智商和蛇一样足够聪明. 首先有一个结论: 当前最强的蛇吃了最弱的蛇之后,如果没有变成最弱的蛇,他一定会选择吃! 证明: 假设当前最强的蛇叫石老板. 如果下一条 ...

  7. 常用的SQL查询思维/场景

    前言 现在大多数开发工作中,已经可以使用一些组件或框架提供的强大的条件构造器来完成查询数据了,虽然强大而且方便,但也还是存在很多业务场景需要实打实的编写传统SQL语句.特别一些测试.维护.问题排查的时 ...

  8. Java(42)JDK新特性之接口组成

    作者:季沐测试笔记 原文地址:https://www.cnblogs.com/testero/p/15201666.html 博客主页:https://www.cnblogs.com/testero ...

  9. 网络通信IO的演变过程(二)(一个门外汉的理解)

    2.NIO 当与别人谈论NIO时,一定要弄清楚别人说的NIO是指哪个含义? NIO有2种含义: 1.NonBlocking IO,基于操作系统谈 2.Java New IO,基于Java谈 我们这里主 ...

  10. [软工顶级理解组] Beta阶段团队贡献分评分

    贡献分评分依据 下述表格适用于前端.后端.爬虫开发者的评分,在此基础上进行增减. 类别 程度 加减分 准时性 提前完成 +0 按时完成 +0 延后完成,迟交时间一天内或未延误进度 -2 延后完成,迟交 ...