抱歉,您的浏览器无法访问本站

本页面需要浏览器支持(启用)JavaScript


了解详情 >

异步JavaScript-Promise信任问题

继前篇 异步JavaScript-现在与将来 | 🍭Defectink 对异步 JavaScript 有了个大概的了解之后,就要来真正的上手一下 Promise 了。但在了解 Promise 解决了哪些问题时,我们要先了解一下传统的回调会带来哪些问题。 回调信任问题回调为什么会有信任问题?回调的本质就是等待将来执行完成的事件来执行我们所准备的函数。 // A ajax('url.1...

异步JavaScript-现在与将来

所有重要的程序都需要通过这样或那样的方法来管理持续一段时间的程序行为。这可能是用户输入、从数据库或文件系统中请求数据、通过网络发送数据并等待响应等。在诸如此类的场景中,程序都需要管理这段时间间隔执行重复任务。 事实上,程序中现在运行的部分和将来运行的部分之间的关系就是异步编程的核心。 分块的程序可以将 JavaScript 程序写在单个.js文件中,但是这个程序几乎一定是由多个块组成。这些块...

JavaScript-语法

在 JavaScript 中,有很多常见的语法仍然有很多地方容易产生困惑、造成误解。 语句与表达式语句(statement)和表达式(expression)常常被混为一谈,但他们二者之间有细微的差别。语句相当于一句话,而表达式更类似于一条短语。 JavaScript 中表达式可以返回一个结果值: let a = 3 * 6; const b = a; b; 上述带有let与const的语句...

JavaScript-类

对象将数组当作对象数组和对象的差距貌似并不大,好像完全可以将一个数组当作对象使用,但这并不是一个好主意。数组和普通的对象都根据其对应的行为和用途进行了优化,所以最好只用对象来存储键/值对,只用数组来存储下标/值对。 如果试图给一个数组添加一个类似数字的属性,例如字符串'3',那么在数组进行存储之后会将其作为下标,并且转为数字。 let arr = [] arr.a = 123...

JavaScript-代理与反射

ECMAScript 6 新增的代理和反射为开发者提供了拦截并向基本操作嵌入额外行为的能力。 反射 API在研究代理之前,应该先看下反射。与 Math 类似,Reflect 对象不是类,尽管他们都是大写开头的。它的属性只是定义了一组相关的方法。这些 ES6 添加的函数为“反射”对象及其属性定义了一套 API。 Reflect 对象在同一个命名空间里定义了一组边界函数,这些函数可以模拟核心语言...

JavaScript-值与类型

值与引用在许多编程语言中,赋值和参数传递可以通过值赋值(value-copy)或者引用复制(reference-copy)来完成。 例如在 C 中,传递一个引用值可以通过声明类似于这样的int* num参数来按引用传递,如果传递一个变量 x,那么num就是指向 x 的引用。引用就是指向变量的指针,如果不声明为引用的话,参数值总是通过值来传递的。即便是复杂的对象值也是如此(C++)。 与 C/...

JavaScript-this全面解析

this 全面解析this 和动态作用域有些许类似,他们都是在执行时决定的。this 是在调用时被绑定的,完全取决于函数的调用位置。 确定调用位置当一个函数被调用是,会创建一个活动记录(执行期上下文)。这个记录会包含函数在哪里被调用(调用栈)、函数的调用方式、传入的参数等信息。this 就是这个记录里的一个属性。 调用位置就是函数在代码中被调用的位置,而不是声明的位置。可以类似于这样来这个记...

JavaScript-编译与闭包

编译原理尽管 JavaScript 经常被归类为“动态”或“解释执行”的语言,但实际上它是一门编译语言。JavaScript 引擎进行的编译步骤和传统编译语言非常相似,但有些地方可能比预想的要复杂。 传统编译流程: 分词/此法分析(Tokenizing/Lexing) 这个过程会将有字符组成的字符串分解成(对编程语言来说)有意义的代码块,这些代码块被称为词法单元(token)。例如:var...

MongoDB零碎笔记

数据结构数据库 集合 文档 插入数据集合为自动创建 选中数据库,如果不存在则自动创建: use test # 'switched to db test' 如果不添加数据则数据库不显示 show dbs admin 41 kB config 61.4 kB local 41 kB 集合不需要手动进行创建,直接插入数据会自动创建集合 db.names.ins...

TypeScript临碎笔记

类型// 基础类型 null, undefined, symbol, boolean, void const count: number = 123; const teacherName: string = 'Dell'; // 对象类型 class Person {} const teacher: { name: string; ...