常用命令

  1. 函数的rest参数和扩展
  2. promise使用
  3. module.exports和Es6 import/export的使用
function sum(x,y,z){
        let total = 0;
        if(x)total+=x;
        if(y)total+=y;
        if(z)total+=z;
    }
    sum(5,"",9);
    function sum2(...m){
        let total = 0;
        for(var i of m){
            total += i;
        }
        console.log(`total${total}`)
    }
    sum2(4,8,9,10,5);
    let sum3 = (...m)=>{
      let total = 0;
      for(var i of m){
        total += i;
      }
      console.log(`total${total}`)
    }
    sum3(4,8,9,10,5);
    var [x,y] = [4,8];
    console.log(...[4,8])
    let arr1 = [1,3];
    let arr2 = [4,8];
    console.log("concat:"+arr1.concat(arr2));
    //[...arr1,...arr2];
    let [a,b,c]="ES6";
    console.log(a);//输出E

  

let checkLogin = function(){
        return new Promise(function(resolve,reject){
            let flag = document.cookie.indexOf("userId")>-1?true:false;
            if(flag=true){
                resolve({
                    status :0,
                    result:true
                })
            }else{
                reject("error")
          }
        })
    };
    let getUserInfo = ()=>{
        return new Promise((resolve,reject)=>{
            let userInfo={
                userId:"101 "
            }
            resolve(userInfo);
      })
    };
    checkLogin().then((res)=>{
        if(res.status == 0){
            console.log("login success")
          return getUserInfo();
        }
    }).catch((error)=>{
        console. log(`error:${error}`);
    }).then((res2)=>{
        console.log(`userId${res2.userId}`)
    })
    Promeise.all([checkLogin(),getUserInfo( )]).then(([res1,res2])=>{
        console.log(`result:${res1.result},result:${res2.result}`)
    })
 //promise
    let checkLogin = function(){
        return new Promise(function(resolve,reject){
            let flag = document.cookie.indexOf("userId")>-1?true:false;
            if(flag=true){
                resolve({
                    status:0,
                    result:true
                })
            }else{
                reject("error")
          }
        })
    };
    let getUserInfo = ()=>{
        return new Promise((resolve,reject)=>{
            let userInfo={
                userId:"101"
            }
            resolve(userInfo);
      })
    };
    checkLogin().then((res)=>{
        if(res.status == 0){
            console.log("login success")
          return getUserInfo();
        }
    }).catch((error)=>{
        console.log(`error:${error}`);
    }).then((res2)=>{
        console.log(`userId${res2.userId}`)
    });
    Promeise.all([checkLogin(),getUserInfo()]).then(([res1,res2])=>{
        console.log(`result:${res1.result},result:${res2.result}`)
    })

  


  

ES6笔记总结的更多相关文章

  1. ES6笔记(5)-- Generator生成器函数

    系列文章 -- ES6笔记系列 接触过Ajax请求的会遇到过异步调用的问题,为了保证调用顺序的正确性,一般我们会在回调函数中调用,也有用到一些新的解决方案如Promise相关的技术. 在异步编程中,还 ...

  2. ES6笔记系列

    ES6,即ECMAScript 6.0,ES6的第一个版本是在2015年发布的,所以又称作ECMAScript 2015 如今距ES6发布已经一年多的时间,这时候才去学,作为一个JSer,羞愧羞愧,还 ...

  3. ES6笔记(1) -- 环境配置支持

    系列文章 -- ES6笔记系列 虽然ES6已经发布一年多了,但在各大浏览器之中的支持度还不是很理想,在这查看ES6新特性支持度 Chrome的最新版本浏览器大部分已经支持,在Node.js环境上支持度 ...

  4. ES6笔记(2)-- let的块级作用域

    系列文章 -- ES6笔记系列 一.函数级作用域 我们都知道,在ES6以前,JS只有函数级作用域,没有块级作用域这个概念 没有块级作用域,有利有弊,利于方便自由,弊于作用域内的变量容易被共享,例如这个 ...

  5. ES6笔记(3)-- 解构赋值

    系列文章 -- ES6笔记系列 解构赋值,即对某种结构进行解析,然后将解析出来的值赋值给相关的变量,常见的有数组.对象.字符串的解构赋值等 一.数组的解构赋值 function ids() { ret ...

  6. ES6笔记(4)-- Symbol类型

    系列文章 -- ES6笔记系列 Symbol是什么?中文意思是标志.记号,顾名思义,它可以用了做记号. 是的,它是一种标记的方法,被ES6引入作为一种新的数据类型,表示独一无二的值. 由此,JS的数据 ...

  7. ES6笔记(6)-- Set、Map结构和Iterator迭代器

    系列文章 -- ES6笔记系列 搞ES6的人也是够无聊,把JS弄得越来越像Java.C++,连Iterator迭代器.Set集合.Map结构都出来了,不知道说什么好... 一.简单使用 1. iter ...

  8. ES6笔记(7)-- Promise异步编程

    系列文章 -- ES6笔记系列 很久很久以前,在做Node.js聊天室,使用MongoDB数据服务的时候就遇到了多重回调嵌套导致代码混乱的问题. JS异步编程有利有弊,Promise的出现,改善了这一 ...

  9. ES6 笔记汇总

    ES6 笔记汇总 二.ES6基础-let和const命令 三.变量的解构赋值 四.字符串的拓展 五.正则表达式的拓展 ...将会持续更新,敬请期待

  10. ES6笔记2

    ES6笔记2 Promise Promise 是 ES6 引入的异步编程的新解决方案,语法上是一个构造函数 一共有3种状态,pending(进行中).fulfilled(已成功)和rejected(已 ...

随机推荐

  1. JavaScript读书笔记(2)--数据类型

    1.  严格模式:在javascript中定义了一种不同的解析与执行模型.在严格模式下,一些不确定的行为将得到处理,对某些不安全的操作也会抛出错误. 用法是在脚本中添加:”use strict”; 这 ...

  2. ORA-00600: internal error code, arguments: [2662], [0], [1106971], [0], [1107731], [12583040]

    今天是2014-06-06,在进行数据库恢复的时候出现了一个久违的ora-600 [2662]错误.特整理例如以下: 问题描写叙述: system及数据文件误删,採用恢复数据文件的方式将数据库恢复到開 ...

  3. OpenCV 入门示例之一:显示图像

    前言 本文展示一个显示图像的示例程序,它用于从硬盘加载一副图像并在屏幕上显示. 代码示例 // 此头文件包含图像IO函数的声明 #include "highgui.h" int m ...

  4. C#用Infragistics 导入导出Excel

    最近项目中有数据的导入导出Excel的需求,这里做简单整理. 公司用的是Infragistics的产品,付费,不需要本地安装Office. 有需要的朋友可以下载 Infragistics.2013.2 ...

  5. android-async-http框架

    android-async-http 简单介绍:An asynchronous, callback-based Http client for Android built on top of Apac ...

  6. Xcode6 新特性

    苹果在WWDC 2014上对新版Xcode(Xcode 6 Beta版)并没有提及过多.但它却是开发人员不能忽视的一部分.Xcode 6 Beta版为设计和创建软件引入了新方法,更加关注功能和一些改善 ...

  7. 【C++基础学习】类型声明

    1.初始化 在C++中,初始化与赋值操作是完全不同的两个操作.初始化不是赋值,初始化的含义是创建变量时赋予其一个初始值,而赋值的含义是把对象的当前值擦除,而以一个新值来代替. 初始化的方式有: 1 i ...

  8. ubuntu搜狗拼音安装

    1.官方下载deb 2.双击安装 3.终端im-config,选择fcitx 4.重启 5.输入法设置中add一下sougoupinyin

  9. s:text

    <s:text>是Struts2用来显示资源文件中信息或格式化数据时使用的,一般要配合<s:i18n>标签.

  10. 多线程设计模式(一) Single Threaded Execution

    这里有一座独木桥.因为桥身非常的细,一次只能允许一个人通过.当这个人没有下桥,另一个人就不能过桥.如果桥上同时又两个人,桥就会因为无法承重而破碎而掉落河里. 这就是Single Threaded Ex ...