JS教程

  • 5.3 ES6 async 函数

    5.3 ES6 async 函数

    asyncasync 是 ES7 才有的与异步操作有关的关键字,和 Promise , Generator 有很大关联的。语法async function name([param[, param[, ... param]]]) { statements }name: 函数名称。param: 要传递给函数的参数的名称。statements: 函数体语句。返回值async 函数返回一个 Promise 对象,可以使用 then 方法添加回调...

    JS教程 2019-10-31 76 0
  • 5.2 ES6 Generator 函数

    5.2 ES6 Generator 函数

    ES6 新引入了 Generator 函数,可以通过 yield 关键字,把函数的执行流挂起,为改变执行流程提供了可能,从而为异步编程提供解决方案。 基本用法Generator 函数组成Generator 有两个区分于普通函数的部分:一是在 function 后面,函数名之前有个 * ;函数内部有 yield 表达式。其中 * 用来表示函数为 Generator 函数,yield 用来定义函数内部的状态。function* func(){ console.log("one"); yield &#...

    JS教程 2019-10-31 67 0
  • JavaScript Promise 对象

    JavaScript Promise 对象

    ECMAscript 6 原生提供了 Promise 对象。Promise 对象代表了未来将要发生的事件,用来传递异步操作的消息。Promise 对象有以下两个特点:1、对象的状态不受外界影响。Promise 对象代表一个异步操作,有三种状态:pending: 初始状态,不是成功或失败状态。fulfilled: 意味着操作成功完成。rejected: 意味着操作失败。只有异步操作的结果,可以决定当前是哪一种状态,任何其他操作都无法改变这个状态。这也是 Promise 这个名字的由来,它的英语意思就是「承诺」,表示其...

    JS教程 2019-10-31 105 0
  • 5.1 ES6 Promise 对象

    5.1 ES6 Promise 对象

    概述是异步编程的一种解决方案。从语法上说,Promise 是一个对象,从它可以获取异步操作的消息。Promise 状态状态的特点Promise 异步操作有三种状态:pending(进行中)、fulfilled(已成功)和 rejected(已失败)。除了异步操作的结果,任何其他操作都无法改变这个状态。Promise 对象只有:从 pending 变为 fulfilled 和从 pending 变为 rejected 的状态改变。只要处于 fulfilled 和 rejected ,状态就不会再变了即 resolve...

    JS教程 2019-10-31 66 0
  • 4.4 ES6 模块

    4.4 ES6 模块

    概述在 ES6 前, 实现模块化使用的是 RequireJS 或者 seaJS(分别是基于 AMD 规范的模块化库,  和基于 CMD 规范的模块化库)。ES6 引入了模块化,其设计思想是在编译时就能确定模块的依赖关系,以及输入和输出的变量。ES6 的模块化分为导出(export) @与导入(import)两个模块。特点ES6 的模块自动开启严格模式,不管你有没有在模块头部加上 use strict;。模块中可以导入和导出各种类型的变量,如函数,对象,字符串,数字,布尔值,类等。每个模块都有自己...

    JS教程 2019-10-31 74 0
  • 4.3 ES6 Class 类

    4.3 ES6 Class 类

    概述在ES6中,class (类)作为对象的模板被引入,可以通过 class 关键字定义类。class 的本质是 function。它可以看作一个语法糖,让对象原型的写法更加清晰、更像面向对象编程的语法。基础用法类定义类表达式可以为匿名或命名。// 匿名类let Example = class {    constructor(a) {        this.a = a;    }}// 命名类let Example = clas...

    JS教程 2019-10-31 85 0
  • 4.2 ES6 迭代器

    4.2 ES6 迭代器

    IteratorIterator 是 ES6 引入的一种新的遍历机制,迭代器有两个核心概念:迭代器是一个统一的接口,它的作用是使各种数据结构可被便捷的访问,它是通过一个键为Symbol.iterator 的方法来实现。迭代器是用于遍历数据结构元素的指针(如数据库中的游标)。迭代过程迭代的过程如下:通过 Symbol.iterator 创建一个迭代器,指向当前数据结构的起始位置随后通过 next 方法进行向下迭代指向下一个位置, next 方法会返回当前位置的对象,对象包含了 value 和 done 两个属性, v...

    JS教程 2019-10-31 60 0
  • 4.1 ES6 函数

    4.1 ES6 函数

    函数参数的扩展默认参数基本用法function fn(name,age=17){ console.log(name+","+age);}fn("Amy",18);  // Amy,18fn("Amy","");  // Amy,fn("Amy");     // Amy,17注意点:使用函数默认参数时,不允许有同名参数。// 不报错function fn(name,name){...

    JS教程 2019-10-31 65 0
  • 3.2.4 ES6 数组

    3.2.4 ES6 数组

    数组创建Array.of()将参数中所有值作为元素形成数组。console.log(Array.of(1, 2, 3, 4)); // [1, 2, 3, 4] // 参数值可为不同类型console.log(Array.of(1, '2', true)); // [1, '2', true] // 参数为空时返回空数组console.log(Array.of()); // []Array.from()将类数组对象或可迭代对象转化为数组。// 参数为数组,返回与原数组一样的数组con...

    JS教程 2019-10-31 52 0
  • 3.2.3 ES6 对象

    3.2.3 ES6 对象

    对象字面量属性的简洁表示法ES6允许对象的属性直接写变量,这时候属性名是变量名,属性值是变量值。const age = 12;const name = "Amy";const person = {age, name};person   //{age: 12, name: "Amy"}//等同于const person = {age: age, name: name}方法名也可以简写const person = {  sayHi(){   &n...

    JS教程 2019-10-30 64 0