概述

async 函数是在 ES2017 引入的。

概念:真正意义上去解决异步回调的问题,同步流程表达异步操作。

本质: Generator 的语法糖。

async 比之前的 Promise、Generator 要好用一些。

阅读全文 »

call()和 apply()

介绍

这两个方法都是函数对象的方法,需要通过函数对象来调用。

当函数调用 call()和 apply()时,函数都会立即执行

  • 都可以用来改变函数的 this 对象的指向。

  • 第一个参数都是 this 要指向的对象(函数执行时,this 将指向这个对象),后续参数用来传实参。

阅读全文 »

JSON 对象

1、js 对象(数组) –> json 对象(数组):

1
JSON.stringify(obj / arr);

2、json 对象(数组) –> js 对象(数组):

1
JSON.parse(json);
阅读全文 »

前言

ECMAScript 是 JS 的语言标准。而 ES6 是新的 JS 语法标准。

PS:严格来说,ECMAScript 还包括其他很多语言的语言标准。

很多人在做业务选型的时候,会倾向于选 jQuery。其实 jQuery 的语法是偏向于 ES3 的。而现在主流的框架 Vue.js 和 React.js 的语法,是用的 ES6。

ES6 中增加了很多功能上的不足。比如:常量、作用域、对象代理、异步处理、类、继承等。这些在 ES5 中想实现,比较复杂,但是 ES6 对它们进行了封装。

阅读全文 »

前言

ES6 在函数扩展方面,新增了很多特性。例如:

  • 箭头函数

  • 参数默认值

  • 参数结构赋值

  • 扩展运算符

  • rest 参数

  • this 绑定

  • 尾调用

箭头函数

定义和调用函数:(传统写法)

阅读全文 »

JSON 格式

JSON 格式(JavaScript Object Notation 的缩写)是一种用于数据交换的文本格式,2001 年由 Douglas Crockford 提出,目的是取代繁琐笨重的 XML 格式。

相比 XML 格式,JSON 格式有两个显著的优点:书写简单,一目了然;符合 JavaScript 原生语法,可以由解释引擎直接处理,不用另外添加解析代码。所以,JSON 迅速被接受,已经成为各大网站交换数据的标准格式,并被写入标准。

每个 JSON 对象就是一个值,可能是一个数组或对象,也可能是一个原始类型的值。总之,只能是一个值,不能是两个或更多的值。

JSON 对值的类型和格式有严格的规定。

阅读全文 »

ES 的几个重要版本

  • ES5 : 09 年发布。

  • ES6(ES2015) : 2015 年发布,也称为 ECMA2015。

  • ES7(ES2016) : 2016 年发布,也称为 ECMA2016 (变化不大)。

严格模式的理解

概念

理解:除了正常运行模式(混杂模式),ES5 添加了第二种运行模式:”严格模式”(strict mode)。

阅读全文 »

概述

背景:ES5 中对象的属性名都是字符串,容易造成重名,污染环境。

概念:ES6 引入了一种新的原始数据类型 Symbol,表示独一无二的值。它是 JavaScript 语言的第七种数据类型,前六种是:undefined、null、布尔值(Boolean)、字符串(String)、数值(Number)、对象(Object)。

特点:

  • Symbol 属性对应的值是唯一的,解决命名冲突问题

  • Symbol 值不能与其他数据进行计算,包括同字符串拼串

  • for in、for of 遍历时不会遍历 Symbol 属性。

阅读全文 »

es5 里面的类

最简单的类

1
2
3
4
5
6
function Person() {
this.name = "张三";
this.age = 20;
}
var p = new Person();
alert(p.name);

构造函数和原型链里面增加方法

1
2
3
4
5
6
7
function Person() {
this.name = "张三"; /*属性*/
this.age = 20;
this.run = function () {
alert(this.name + "在运动");
};
}
阅读全文 »

typescript 中为了使编写的代码更规范,更有利于维护,增加了类型校验,在 typescript 中主要给我们提供了以下数据类型

  • 布尔类型(boolean)
  • 数字类型(number)
  • 字符串类型(string)
  • 数组类型(array)
  • 元组类型(tuple)
  • 枚举类型(enum)
  • 任意类型(any)
  • null 和 undefined
  • void 类型
  • never 类型

布尔类型(boolean)

1
2
3
4
// es5的写法 (正确写法)  ts中(错误写法)
var flag = true;

flag = 456;

typescript 中为了使编写的代码更规范,更有利于维护,增加了类型校验

阅读全文 »