1:三点运算符

(1). rest(可变)参数

    * 用来取代arguments 但比arguments灵活,只能是最后部分形参参数

  function add(...values) {

    let sum = 0;

    for(value of values) {

      sum += value;

    }

    return sum;

  }

(2). 扩展运算符

  let arr1 = [1,3,5];

  let arr2 = [2,...arr1,6];

  arr2.push(...arr1);

<script type="text/javascript">function fun(...values) {console.log(arguments);
//        arguments.forEach(function (item, index) {//            console.log(item, index);
//        });
        console.log(values);values.forEach(function (item, index) {console.log(item, index);})}fun(1,2,3);let arr = [2,3,4,5,6];let arr1 = ['abc',...arr, 'fg'];console.log(arr1);</script>

2:默认形参

* 形参的默认值----当不传入参数的时候默认使用形参里的默认值
function Point(x = 1,y = 2) {
this.x = x;
this.y
= y;

}
3:Promise对象

1. 理解:

* Promise对象: 代表了未来某个将要发生的事件(通常是一个异步操作)

* 有了promise对象, 可以将异步操作以同步的流程表达出来, 避免了层层嵌套的回调函数(俗称'回调地狱')

* ES6的Promise是一个构造函数, 用来生成promise实例

2. 使用promise基本步骤(2步):

* 创建promise对象

let promise = new Promise((resolve, reject) => {

//初始化promise状态为 pending

//执行异步操作

if(异步操作成功) {

resolve(value);//修改promise的状态为fullfilled

} else {

reject(errMsg);//修改promise的状态为rejected

}

})

* 调用promise的then()

promise.then(function(

result => console.log(result),

errorMsg => alert(errorMsg)

))

3. promise对象的3个状态

* pending: 初始化状态

* fullfilled: 成功状态

* rejected: 失败状态

4. 应用:

* 使用promise实现超时处理

* 使用promise封装处理ajax请求

let request = new XMLHttpRequest();

request.onreadystatechange = function () {

}

request.responseType = 'json';

request.open("GET", url);

request.send();

-->

window.onload = function () {//回调函数//获取新闻信息function getNews(url) {let promise = new Promise((resolve, reject) => {let request =  new XMLHttpRequest();request.onreadystatechange = () =>{if(request.readyState === 4 ){if(request.status == 200){//请求发送成功let news = request.response;resolve(news);}else{reject("请求失败了。。。");}}}request.responseType = "json";request.open("GET",url);request.send();//发送})return promise;}getNews("http://127.0.0.1:3000/news?id=2").then((news)=>{console.log(news);document.write(JSON.stringify(news));console.log('http://localhost:3000' + news.commentsUrl);return getNews('http://localhost:3000' + news.commentsUrl);},()=>{alert(error);}). then((comments) => {console.log(comments);document.write('<br><br><br><br><br>' + JSON.stringify(comments));}, (error) => {alert(error);})
}

转载于:https://www.cnblogs.com/love-life-insist/p/9923560.html

Promise对象和运算符相关推荐

  1. python input与返回值-Python基础教程之输入输出和运算符

    在我们python中输入输出函数在程序中运用较为广泛,运算符常用于if判断的条件中,今天我来给大家讲解这两项概念. input输入和print输出 input()输入函数 从标准输入设备(一般指键盘) ...

  2. python变量运算符_Python基础 — 变量和运算符

    序言:这一章我们将学习变量以及常见的类型,我们将以案例和代码相结合的方式进行梳理,但是其中所有的案例和知识点 都是Python3 版本. 变量和运算符 1.1 初步介绍 ​ 在程序设计中,变量是一种存 ...

  3. double类型怎么取余_数据类型和运算符

    数据类型和运算符 1.进制 1.1文件存储单位 ​ 任何数据在计算机中都是以二进制的形式存在的,二进制早期由电信号开关演变而来 . ​ 一个电信号或者一个二进制位统称为Bit位,8个Bit位为一组组成 ...

  4. JSP、EL和JSTL-学习笔记03【EL介绍和运算符、EL获取域中存储的数据】

    Java后端 学习路线 笔记汇总表[黑马程序员] JSP.EL和JSTL-学习笔记01[JSP基础语法] JSP.EL和JSTL-学习笔记02[MVC] JSP.EL和JSTL-学习笔记03[EL介绍 ...

  5. python变量和运算符

    python变量和运算符 1.变量 创建变量: 创建规则: 赋值变量: 字母,数字和下划线,不可数字开头,不可是关键字 num=1 _name='' a,b,c=1,2,3 2.运算符 算术:+-*/ ...

  6. 操作数数据类型 char 对于 sum 运算符无效。_数据类型和运算符

    数据类型和运算符 1.进制 1.1文件存储单位 ​ 任何数据在计算机中都是以二进制的形式存在的,二进制早期由电信号开关演变而来 . ​ 一个电信号或者一个二进制位统称为Bit位,8个Bit位为一组组成 ...

  7. Day02-变量_数据类型和运算符

    1 数据类型 不同类型的变量可以进行的运算是不同的,所以必须理解变量的类型,python中数据类型可以分为: 内置类型 数值类型:整型int,浮点型float,复数(complex) 3+5j str ...

  8. python的数值类型和运算符_Python全栈工程师(数值类型、运算符)

    1.十进制表示方式 10 200 -100 999 八进制: 0o177(127) 0o11(9) 2.十六进制: 0x11(17) 0xff(255) 0x1a2b 3.二进制: 0b111 0b1 ...

  9. python计算复数的辐角_Python 自定义类中的函数和运算符重载

    如果你曾在字符串(str)对象上进行过 + 或 * 运算,你一定注意到它跟整数或浮点数对象的行为差异: >>> # 加法 >>> 1 + 2 3 >>& ...

  10. Java学习day02-数据类型和运算符

    数据类型和运算符 今日目标: 1.变量: 2.数据类型: 3.数据类型转换 4.变量使用案例: 5.程序如何同用户交互:(Scanner) 6.赋值运算符: 7.算术运算符: 8.关系运算符 9.逻辑 ...

最新文章

  1. springboot-拦截器的实现、执行时机及原理
  2. [C++学习笔记]C++常见问题大全(二)
  3. 一个层动态放大的例子的一些知识点
  4. JQUERY学习第二天之制作横纵向导航菜单
  5. 怎么会这样?delete [] 了,还能用!!!
  6. 人生不可能完美因此我们要学会讲究着过
  7. unity3d与eclipse集成开发android应用
  8. (转载)grep 行号正则匹配字符有颜色
  9. 电脑连上网,可是软件、谷歌等浏览器都显示未连接到互联网。远程计算机设备将不受连接,两个解决方法。
  10. BMS 中的安规设计
  11. html实战解析—折扣计算器生成机制及实例代码
  12. 数学表达式: 从恐惧到单挑 (7. min 与 argmin)
  13. 未能加载文件或程序集“XXXX”或它的某一个依赖项。试图加载格式不正确的程序。(已解决)
  14. Vue项目上线后刷新报错404问题(apache,nginx,tomcat)
  15. 新年最美表白烟花-祝大家新年快乐,表白成功
  16. 软骨鱼是WordPress构建SaaS平台的最优解决方案
  17. 树的平衡 AVL Tree
  18. 拼多多店铺怎么做产品
  19. linux登录远程mysql_实现MySQL远程登陆在linux下
  20. Focusky教程 | 为什么导入PPT后有的图片没有显示?

热门文章

  1. ZooKeeper 数据模型 Znode 结构特性详解
  2. 广度优先遍历(Breadth First Search)
  3. TE飞到对象完成事件
  4. [Android Pro] 组件化:企业级大型项目必经之路
  5. 部署war包到tomcat根目录
  6. 标号1-n的n个人首尾相接,1到3报数,报到3的退出,求最后一个人的标号
  7. 使用Mathcad解受迫振动微分方程并画图
  8. LOJ2360「NOIP2016」换教室
  9. 模板引擎-1-基础概念和是使用小案例
  10. groupmod 修改用户组信息