1、什么是回调
异步编程最基本的方法,按顺序执行异步逻辑,后续逻辑封装成回调函数,作为起始函数中的参数
function learn(something){
console.log(something);
}
//后续逻辑封装成函数作为起始函数的参数,感觉不叫回调啊,都
function we(callback,something){
something+=' is cool';
callback(something);
}
we(learn,'Nodejs');
2、什么是同步
这个就简单了,比如你打电话预定房间,人家说我查查,你先别挂,这就是同步,
- 同步:你打电话预定房间,人家说我查查,你先别挂,期间不能干其他事
- 异步:你打电话预定房间,人家说我查查,等会给你回电话,你就能干其他事了
3、什么是io
磁盘的读入和写出,就是为文件系统,数据库读取建立接口,发送文件请求时,不用等硬盘,等硬盘准备好之后,再非阻塞通知你
4、什么是单线程/多线程
- 单线程:一次只能谈一个女朋友,分了再谈,安全,如果分的快,速度不比多线程慢
- 多线程:一次谈几个,但是到了节日,就会争夺资源,容易出事,不安全,
5、什么是阻塞
- 阻塞:和上个一样,你不能挂电话,不就阻止你干其他事了
- 非阻塞:同上
6、什么是事件
就是click,这些,发生了什么事情。
7、什么是事件驱动
事件发生了,执行动作,就是事件驱动,为回调函数添加监听函数
8、什么是事件驱动的回调(重要)
通过单线程非阻塞,和异步回调可以实现非阻塞编程,但是什么时候执行回调函数,就要靠事件了,如果和io有关,就是异步io
9、什么是事件循环
假设有大量异步要操作,还有io耗时程序,或者定时延时程序,管理这些需要一个机制,就是事件循环(loop),
队列:普通函数->事件回调函数,
理解些术语,高并发,io密集
http源码解读准备(上下文,和作用域)
- 作用域:和访问变量有关
上下文:常常代表this的值以及它的指向
this总是指向调用该函数方法的对象,很重要,指向函数拥有者。把拥有者叫做执行上下文。
使用call和apply 可以更改上下文,就是this指向的东西