你不知道的javaScript笔记(7)
异步:现在与将来
分块的程序
可以把JavaScript 程序写在单独的js 文件中,这个程序是由多个块组成的,这些块
中只有一个是现在执行,其余在捡来执行,最常见的块单位是函数。
例如:
function now() {
return 21;
}
function later() {
answer = answer * 2;
console.log("Meaning of life:", answer);
}
var answer = now();
setTimeout (later,1000); // Meaning of life: 42
现在:
function now() {
return 21;
}
function later() {...}
setTimeout(later,1000);
setTimeout(later,1000);
将来:
answer = answer * 2;
console.log("Meaning of life:", answer);
异步控制台
事件循环
并行线程
异步是现在和将来的时间间隙,而并行是关于能同时发生的事情。
并行计算最常见的的工具就是进程和线程,并行和线程独立运行,并可能同时运行,
在不同的处理器,甚至不同的计算机上,但多个进程能够共享单个进程的内存。
并发
两个或多个“进程”同时执行就出现了并发,不管组成他们的单个运算是否并行执行
可以把并发看作“进程”及的并行,与计算级的并行相对。
非交互
两个或多个“进程”在同一个程序内并发地交替运行它们的步骤/事件时,如果这些任务彼此不相关,就不一定需要交互。
交互
更常见的情况是,并发的“进程”需要相互交流,通过DOM 间交互。
协作
取到一个长期运行的进程,并将其分割成多个步骤或多批人,使其他并发“进程”有机会将自己的运算插入到事件循环队列中交替运行。
任务
挂在事件循环队列的每个tick 之后的一个队列,在事件循环的每个tick 中,可能
出现异步动作不会导致一个完整的新事件添加到新事件中,而会在当前的tick 的任务队列末尾添加一个项目。
语句顺序
代码中语句的顺序和JavaScript 引擎执行语句的顺序并不一定一致。
JavaScript 引擎在编译这段代码之后,可能会发现通过重新安排这些语句的顺序有可能提过速度。
回调
continuation(延续)
顺序的大脑
执行与计划
嵌套回调与链式回调
信任问题
五个回调的故事
省点回调
你不知道的javaScript笔记(7)的更多相关文章
- 你不知道的JavaScript笔记----对象
对象: 1.定义对象属性 属性描述符(也称为:数据描述符) Object.defineProperty(Object,PropertyName,{ value: 6, writable: true, ...
- 你不知道的javaScript笔记(6)
语法 语句表达式 句子是完整表达某个意思的一组词,由一个或多个短语组成,他们之间由标点符号或者连接词连接起来. 语句相当于句子,表达式相当于短语,运算符则相当于标点符号和连接词. JavaScript ...
- 你不知道的javaScript笔记(5)
原生函数 常用的原生函数 String() Number() Boolean() Array() Object() Function() RegExp() Date() Error() Symbol( ...
- 你不知道的javaScript笔记(4)
类型: JavaScript 有7种内置类型 空值 (null) 未定义(undefined) 布尔值(boolean) 数字(number) 字符串(string) 对象(object) 符号(sy ...
- 你不知道的javaScript笔记(3)
对象 对象可以通过两种形式定义: 声明形式和构造形式 声明形式语法: var myObj = {key:value} 构造形式语法: var myObj = new Object(); myObj.k ...
- 你不知道的javaScript笔记(2)
this和对象原型 this是一个很特别的关键字,被自动定义在所有函数的作用域中 // foo.count 是0,字面理解是错误的 function foo(num) { console.log(&q ...
- 你不知道的javaScript笔记(1)
规避冲突 function foo(){ function bar(a){ i = 3; console.log(a + i); } for ( var i=0; i < 10; i++){ b ...
- 你不知道的Javascript(上卷)读书笔记之一 ---- 作用域
你不知道的Javascript(上卷)这本书在我看来是一本还不错的书籍,这本书用比较简洁的语言来描述Js的那些"坑",在这里写一些博客记录一下笔记以便消化吸收. 1 编译原理 在此 ...
- 你不知道的JavaScript上卷笔记
你不知道的JavaScript上卷笔记 前言 You don't know JavaScript是github上一个系列文章 初看到这一标题的时候,感觉怎么老外也搞标题党,用这种冲突性比较强的题目 ...
随机推荐
- Spring JdbcTemplate 使用总结
1.查询Object public Classify queryClassifById(int id){ String sql="select * from t_classify where ...
- ubuntu下安装MySQL8.0
为了一劳永逸不每次都到处找资料,花了一下午时间做了这些.其中大部分是根据官方手册来的,后面部分谢谢大佬的帮助,超开心. 一.首先,将MySQL APT存储库添加到系统的软件存储库列表中 1.转到htt ...
- props的异步加载问题
在写vue项目的时候,父组件调用ajax的接口获得数据,然后赋值给data中的初始值,然后通过props传给子组件,子组件在created的时候,获得的props的值有的时候是undefined,因为 ...
- 吐槽中小民营IT企业管理七宗罪
傲慢.妒忌.暴怒.懒惰.贪婪.贪食及色欲,电影<七宗罪>中借七个典型的命案告诉我们,人性中最丑陋的七大恶行.在实际的工作中自己对企业的经营和日常管理有了一些更深刻的认识,偏偏自己又是一个很 ...
- toMapFromStage layerDefinitions ClassBreakRenderer
class Map 方法 toMapFromStage 用于把屏幕坐标转换为地理坐标 public function toMapFromStage(stageX:Number, stageY:Numb ...
- Dubbo架构原理
1 Dubbo核心功能 Remoting:远程通讯,提供对多种NIO框架抽象封装,包括“同步转异步”和“请求-响应”模式的信息交换方式. Cluster: 服务框架,提供基于接口方法的透明远程过程调用 ...
- latex在线编辑网址
https://www.overleaf.com/7876326cfzygjtvbrzh#/27713363/
- 使用 richtextbox 输出程序运行信息
private delegate void Refresh_CallBack(Color color,string text); private void ControlsRefresh(Color ...
- Servlet 2.5为cookie配置HTTPOnly属性
cookie的HTTPOnly属性,主要是用来防止JavaScript来读取cookie,默认情况下,JavaScript可以通过document.cookie来读取cookie,这样是很不安全的.通 ...
- JavaMelody监控spring、struts
前言 前面讲过了Javamelody的基本配置,如何使用Javamelody来监控JDBC以及SQL. 这里继续讲解一下如何监控struts和spring. 手码不易,转载请注明:xingoo 由于s ...