你不知道的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上一个系列文章 初看到这一标题的时候,感觉怎么老外也搞标题党,用这种冲突性比较强的题目 ...
随机推荐
- ie7下属性书写不规范造成的easyui 弹窗布局紊乱
(一)在ie7下 弹窗只是普通页面 (二)控制台报错 (三)原因: (四)解决 去掉 data-options 属性里的 , 就可以了
- 小米3 无法显示日志 Logcat
需要ROOT权限 1. 使用文件浏览器进入 /system/etc/init.d/ 目录 2.使用文本编辑器打开里面的 01Supertweak 这个文件 在最下面找到 rm /dev/lo ...
- Java 重写hashCode() 时为什么要用 31 来计算
在OSChina 中看到了一篇文章<Java 中正确使用 hashCode 和 equals 方法>,看到 hashCode 的方法体内的31比较有意思. 在Stackoverflow上找 ...
- Elipse plugin or Bundle & OSGI
Develop and register service, lookup and use service! Android Design on service's publish-find-bind ...
- .NET开源工作流RoadFlow-表单设计-隐藏域
隐藏域即<input type="hidden" value=""/>标签:
- Class.forName(),classloader.loadclass用法详解
为什么要把ClassLoader.loadClass(String name)和Class.forName(String name)进行比较呢,因为他们都能在运行时对任意一个类,都能够知道该类的所有属 ...
- 设计模式——装饰模式(Decorator Pattern)
装饰模式:动态的给一个对象添加一些额外的职责,就增加功能来说,装饰模式比生成子类更为灵活. UML图: 模型类: Component类: package com.cnblog.clarck; /** ...
- 【[ZJOI2008]骑士】
这道题好暴力啊 发现自己刚学\(OI\)的时候对着这道题写了一个大搜索 发现已经看不懂了 果然我现在菜到连一年半前的我都不如了 这其实是一个基环树\(dp\)啦,基环树上的最大点独立集 其实很简单,我 ...
- [USACO17JAN]Subsequence Reversal
嘟嘟嘟 这题刚开始是什么思路也没有,关键是不知道怎么解决序列反转的问题. 然后我就想到如果暴力反转一个序列的话,实际上就是不断交换数组中的两个数ai和aj,同时要满足交换的数不能交叉. 然后又看了一眼 ...
- 2018中国大学生程序设计竞赛 - 网络选拔赛 4 - Find Integer 【费马大定理+构造勾股数】
Find Integer Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Tota ...