标签:

学习

本章我们将介绍 JavaScript symbol,以及依赖于此的 JavaScript 新特性。 什么是 JavaScript 中的基本数据类型 primitive data types?简单来说,就是null、undefined、string、number和boolean这几种数据类型。还有别的吗?是的!符号(symbol)是在 ES2016(ES6)中与bigint一起引入的一种新的基本数据 ...

0 个评论 846 次阅读

ECMAScript 2015 规范增加了内部槽盒内部函数,用于指定在运行时对象不被暴露的内部属性和函数。 ECMAScript 2015 规范 6.1.7.2 一节讨论了对象(Object的子类)可以包含的一些奇怪的内部属性和内部函数。这些属性和函数由 JavaScript 引擎实现,但是从运行时抽象出来,因此,你不能像普通属性那样访问它们。 在 ECMAScript 规范中,这些属性被标记为[ ...

0 个评论 1.9K 次阅读

当我们创建 JavaScript 对象时,不论是使用对象字面量语法还是其它别的语法,我们都可以给这些对象添加属性。每一个属性默认会有一个属性描述符。属性描述符就是一个简单的 JavaScript 对象,与目标对象的属性关联起来,包含了该属性的各种信息,比如值value和其它元数据。 在上面的代码中,我们使用字面量语法创建了一个 JavaScript 对象myObj;该对象添加了两个属性myProp ...

0 个评论 1.8K 次阅读

JavaScript 元编程简介

by 豆子

替换《reflect-metadata 包以及 ECMAScript 提案》 按照维基百科的定义: Metaprogramming is a programming technique in which computer programs have the ability to treat other programs as their data. It means that a program ...

0 个评论 2K 次阅读

本文我们将学习 TypeScript 的修饰器模式,以及修饰器是如何改变一个类的。同时,我们也将了解到 reflect-metedata 包是如何帮助我们设计修饰器的。 修饰器是一种注解,放置在类声明或类成员变量之前,用来改变类或属性的行为。如果你是 Angular 开发者,那么就会知道定义 Angular 组件的 @Component修饰器。 上面的例子,@Component注解就是一个修饰器, ...

0 个评论 1.9K 次阅读

本文将介绍 reflect-metadata 包。TypeScript 使用这个包设计装饰器 decorator。这个包原本是为了提供Reflect API 的“元数据扩展” ECMAScript 提案的兼容方案。 元数据 metadata,简而言之,就是实际数据的额外信息(译注:通常被称为数据的数据)。例如,如果一个变量表示一个数组,那么,数组的长度就是一个元数据。类似的,数组中的每个元素都是实 ...

0 个评论 1.9K 次阅读

本文将介绍 TypeScript 的类型基础,以及 TypeScript 是如何管理类型的。本文将包含类型断言、类型接口、类型联合、类型守卫、结构类型以及其它你需要了解的相关概念。 类型接口 Type Inference 在 TypeScript 中,使用一个值初始化一个变量,不需要为这个变量提供数据类型。TypeScript 编译器会通过赋给的值的类型 type 和形状 shape 来推断(in ...

0 个评论 2.3K 次阅读

Promise 是 JavaScript 语言引入的新特性之一。前面的一篇文章我们已经介绍过 JavaScript 中的 promise 和 async/await 的语法。这篇文章将重点聚焦于 TypeScript 语言中的 promise 和 async/await。 promise 是Promise类的实例。创建一个 promise 对象,我们需要使用new Promise(executor ...

0 个评论 2.4K 次阅读

利用 promise,我们可以以一种可控的方式编写异步代码。利用基于 promise 的 async/await 语法,我们可以以一种同步的形式编写异步代码,从而为我们节省大量时间,代码也更加可读。 JavaScript 在单一线程执行代码,这使得 JavaScript 经常阻塞。下面我们看一个简单的例子,在这个例子中,我们会顺序调用三个函数: 在上面的代码中,每个函数调用和console.log ...

0 个评论 2.1K 次阅读

前面我们介绍了有关 Angular 路由的基本内容。现在,我们就可以完成我们所需要的部分了: 这应该是我们之前的需求列表中最后一部分了。 为了添加路由,首先,我们应该创建一个路由模块。 这里,我们将空路由''映射到TodoListComponent,同时添加了一个:status路由,也映射到这一组件。之所以这样设计,是因为按照需求里面的要求,路由只是为了切换待办事项的列表显示。那么,这意味着路由应 ...

0 个评论 2.3K 次阅读

关于我

devbean

devbean

豆子,生于山东,定居南京。毕业于山东大学软件工程专业。软件工程师,主要关注于 Qt、Angular 等界面技术。

主题 Salodad 由 PenciDesign 提供 | 静态文件存储由又拍云存储提供 | 苏ICP备13027999号-2