ES6类 _ ---------------------------------------------------------------- 数据类型: number、string、boolean、Object、undefined、function 用typeof检测出来数据类型: symbol new Number(12) new String() new Array() symbol 使用情况一般 定义: let syml = Symbol('aaa'); 注意: 1. Symbol 不能new 2. Symbol() 返回是一个唯一值 坊间传说, 做一个key,定义一些唯一或者私有一些东 3. symbol是一个单独数据类型,就叫 symbol, 基本类型 4. 如果symbol作为key,用for in循环,出不来 json -> for in --------------------------------------------------------------- 箭头函数 () =>{} generator函数 生成器 解决异步深度嵌套的问题, async 语法: function * show(){ yield } function* show(){ } function *show(){ } 定义: function * gen(){ yield 'welcome'; yield 'to'; return '爱记录'; } 调用: let g1 = gen(); g1.next(); // {value:'welcome', done:false} g1.next(); // {value:'to', done:false} g1.next(); // {value:'爱记录', done:true} 上述调用,手动调用,麻烦 for .. of 自动遍历 generator return的东西,它不会遍历 generator不仅可以配合 for ... of ... 还可以: 1. 解构赋值: let [a, ...b] = gen(); 2. 扩展运算符 '...' console.log(...gen()); 3. Array.from() console.log(Array.from(gen())); generator结合 axios数据请求: ----------------------------------------------- 异步: 不连续,上一个操作没有执行完,下一个操作照样开始 同步: 连续执行,上一个操作没有执行完,下一个没法开始 关于异步,解决方案: a). 回调函数 b). 事件监听 c). 发布/订阅 d). Promise对象 co.... ----------------------------------------------- ES2017,规定 async nodeJs 读取文件 fs.readFile 1. promise 2. genrator 3. async -------------------------------------- async function fn(){ //表示异步,这个函数里面有异步任务 let result = await xxx //表示后面结果需要等待 } -------------------------------------- async特点: 1. await只能放到async函数中 2. 相比genrator语义化更强 3. await后面可以是promise对象,也可以数字、字符串、布尔 4. async函数返回是一个promise对象 5. 只要await语句后面Promise状态变成 reject, 那么整个async函数会中断执行 -------------------------------------- 如何解决async函数中抛出错误,影响后续代码: a). try{ }catch(e){ } b). promise本身catch -------------------------------------- 个人建议大家: try{ let f1 = await readFile('data/a.txt'); let f3 = await readFile('data/c.txt'); let f2 = await readFile('data/b.txt'); }catch(e){} --------------------------------------