异步:现在与将来

  分块的程序

    可以把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)的更多相关文章

  1. 你不知道的JavaScript笔记----对象

    对象: 1.定义对象属性 属性描述符(也称为:数据描述符) Object.defineProperty(Object,PropertyName,{ value: 6, writable: true, ...

  2. 你不知道的javaScript笔记(6)

    语法 语句表达式 句子是完整表达某个意思的一组词,由一个或多个短语组成,他们之间由标点符号或者连接词连接起来. 语句相当于句子,表达式相当于短语,运算符则相当于标点符号和连接词. JavaScript ...

  3. 你不知道的javaScript笔记(5)

    原生函数 常用的原生函数 String() Number() Boolean() Array() Object() Function() RegExp() Date() Error() Symbol( ...

  4. 你不知道的javaScript笔记(4)

    类型: JavaScript 有7种内置类型 空值 (null) 未定义(undefined) 布尔值(boolean) 数字(number) 字符串(string) 对象(object) 符号(sy ...

  5. 你不知道的javaScript笔记(3)

    对象 对象可以通过两种形式定义: 声明形式和构造形式 声明形式语法: var myObj = {key:value} 构造形式语法: var myObj = new Object(); myObj.k ...

  6. 你不知道的javaScript笔记(2)

    this和对象原型 this是一个很特别的关键字,被自动定义在所有函数的作用域中 // foo.count 是0,字面理解是错误的 function foo(num) { console.log(&q ...

  7. 你不知道的javaScript笔记(1)

    规避冲突 function foo(){ function bar(a){ i = 3; console.log(a + i); } for ( var i=0; i < 10; i++){ b ...

  8. 你不知道的Javascript(上卷)读书笔记之一 ---- 作用域

    你不知道的Javascript(上卷)这本书在我看来是一本还不错的书籍,这本书用比较简洁的语言来描述Js的那些"坑",在这里写一些博客记录一下笔记以便消化吸收. 1 编译原理 在此 ...

  9. 你不知道的JavaScript上卷笔记

    你不知道的JavaScript上卷笔记 前言 You don't know JavaScript是github上一个系列文章   初看到这一标题的时候,感觉怎么老外也搞标题党,用这种冲突性比较强的题目 ...

随机推荐

  1. 第七章--Java基础类库--与用户的互动

    1.命令行编译和运行java程序在notepad++中集成java编译运行命令 参考博客:http://blog.sina.com.cn/s/blog_84405af50101q7fn.html2与用 ...

  2. 随学笔记 partAdded

    随学笔记: RectangularDropShadow为矩形对象添加阴影,DropShadowFilter可以为任意形状对象添加阴影. BorderContainer和Panel等容器使用的就是Rec ...

  3. keychains

    keychain在ios中是保存在sqlite数据库中的.这个数据库文件的位置:真机:/private/var/Keychains/keychain-2.db虚拟机:/Users/USER-HOME/ ...

  4. matlab练习程序(圆柱投影)

    圆柱投影就是将一张二维的图像投影到三维的圆柱体上,不过在显示图像的时候依然是以二维的形式给出. 投影最重要的步骤就是计算投影变换公式,和图像旋转类似,只要得到变换公式,再依照公式进行代码编写就很容易了 ...

  5. DispatchAction和ForwardAction

    添加功能的步骤:做页面——编写DAO类中的方法——编写和配置action. 如果多个action 使用一个formbean,这种事儿多发生在统一模块中,就可以用一个Action集中处理多个操作,而不要 ...

  6. event.cancelBubble=true

    <tr><a href="xxx">连接</a></tr> 如上结构,单击tr的时候跳转至另一页面 <tr style=&qu ...

  7. 【Leetcode】【Easy】Remove Nth Node From End of List

    Given a linked list, remove the nth node from the end of list and return its head. For example, Give ...

  8. 把web项目改造为maven项目

    如题,资料网上有一大堆,这里是实践了做个整理. [注意]maven配置 maven要运行在JDK:外部JAVA_HOME指定到JDK,eclipse中runtime指定到JDK 在eclipse中配置 ...

  9. IOS CoreLocation框架的使用(用于地理定位)

    ●  在移动互联网时代,移动app能解决用户的很多生活琐事,比如 ●  导航:去任意陌生的地方 ●  周边:找餐馆.找酒店.找银行.找电影院 ●  在上述应用中,都用到了地图和定位功能,在iOS开发中 ...

  10. css盒模型-BFC

    BFC(边距重叠解决方案) 1.BFC的基本概念:块级格式化上下文 2.BFC的原理(说白了就是BFC的渲染规则): 这个规则是什么呢?我觉得大家能说出4点就够了 第一个就是BFC可以解决这个元素的垂 ...