摘要:
面试题一 /* promise1 2 then1 queueMicrotask1 then3 setTimeout1 then2 then4 setTimeout2 */ console.log("script start")//主任务1 setTimeout(function () { conso 阅读全文
摘要:
进程和线程 ◼ 线程和进程是操作系统中的两个概念: 进程(process):计算机已经运行的程序,是操作系统管理程序的一种方式; 线程(thread):操作系统能够运行运算调度的最小单位,通常情况下它被包含在进程中; ◼ 听起来很抽象,这里还是给出我的解释: 进程:我们可以认为,启动一个应用程 阅读全文
摘要:
◼ async关键字用于声明一个异步函数: async是asynchronous单词的缩写,异步、非同步; sync是synchronous单词的缩写,同步、同时; ◼ async异步函数可以有很多中写法 async function foo(){} const foo1 = async fun 阅读全文
摘要:
自动执行generator函数 ◼ 目前我们的写法有两个问题: 第一,我们不能确定到底需要调用几层的Promise关系; 第二,如果还有其他需要这样执行的函数,我们应该如何操作呢? ◼ 所以,我们可以封装一个工具函数execGenerator自动执行生成器函数 <script> // 封装一个请 阅读全文
摘要:
异步处理方案 ◼ 学完了我们前面的Promise、生成器等,我们目前来看一下异步代码的最终处理方案。 ◼ 案例需求: 我们需要向服务器发送网络请求获取数据,一共需要发送三次请求; 第二次的请求url依赖于第一次的结果; 第三次的请求url依赖于第二次的结果; 依次类推; <script> / 阅读全文
摘要:
◼ 生成器是ES6中新增的一种函数控制、使用的方案,它可以让我们更加灵活的控制函数什么时候继续执行、暂停执行等。 平时我们会编写很多的函数,这些函数终止的条件通常是返回值或者发生了异常。 ◼ 生成器函数也是一个函数,但是和普通的函数有一些区别: 首先,生成器函数需要在function的后面加一个 阅读全文
摘要:
◼ 但是上面的代码整体来说看起来是有点奇怪的: 我们获取一个数组的时候,需要自己创建一个index变量,再创建一个所谓的迭代器对象; 事实上我们可以对上面的代码进行进一步的封装,让其变成一个可迭代对象; ◼ 什么又是可迭代对象呢? 它和迭代器是不同的概念; 当一个对象实现了iterable 阅读全文
摘要:
迭代器 什么是迭代器? ◼ 迭代器(iterator),使用户在容器对象(container,例如链表或数组)上遍访的对象,使用该接口无需关心对象的内部实现细节。 其行为像数据库中的光标,迭代器最早出现在1974年设计的CLU编程语言中; 在各种编程语言的实现中,迭代器的实现方式各不相同,但是基 阅读全文
摘要:
◼ 在目前的开发中,JSON是一种非常重要的数据格式,它并不是编程语言,而是一种可以在服务器和客户端之间传输的数据格式。 ◼ JSON的全称是JavaScript Object Notation(JavaScript对象符号): JSON是由Douglas Crockford构想和设计的一种轻量级 阅读全文
摘要:
认识BOM操作 ◼ BOM:浏览器对象模型(Browser Object Model) 简称BOM,由浏览器提供的用于处理文档(document)之外的所有内容的其他对象; 比如navigator、location、history等对象; ◼ JavaScript有一个非常重要的运行环境就是浏览 阅读全文