老莫的笔记本  
  
查看: 1822|回复: 11

与 ES6 的战斗

[复制链接]

664

主题

881

帖子

5169

积分

超级版主

Rank: 8Rank: 8

积分
5169
发表于 2018-4-18 11:44:35 | 显示全部楼层 |阅读模式
引入文件:
  1. import "./src/arrow.js"
复制代码
该 .js 可以省略


回复

使用道具 举报

664

主题

881

帖子

5169

积分

超级版主

Rank: 8Rank: 8

积分
5169
 楼主| 发表于 2018-4-18 11:46:48 | 显示全部楼层
常量:
  1. es5 中常量的写法 :  Object.defineProperty(window,"PI2",{
  2.                                 value: 3.24132,   //默认值
  3.                                 writable: false,   //只读
  4.                                
  5.                         })
  6. es6 中常量的写法 :   const pi = 3.14
复制代码
回复

使用道具 举报

664

主题

881

帖子

5169

积分

超级版主

Rank: 8Rank: 8

积分
5169
 楼主| 发表于 2018-4-18 11:47:58 | 显示全部楼层
作用域

在 ES6 中 一个  { }  就是一个单独的作用域
回复

使用道具 举报

664

主题

881

帖子

5169

积分

超级版主

Rank: 8Rank: 8

积分
5169
 楼主| 发表于 2018-4-18 11:48:11 | 显示全部楼层
  1. 箭头函数:
  2.         ()=>{
  3.         }
  4.            【 (小括号里是参数)  参数只有一个的时候:  () 的 值 可以不写  】
  5.         
  6.         【{ }  如果 花括号里的表达式 可以直接作为返回值 那就可以省略 花括号】
  7.         
  8.         以前是: function a(){ }
  9.         
复制代码
回复

使用道具 举报

664

主题

881

帖子

5169

积分

超级版主

Rank: 8Rank: 8

积分
5169
 楼主| 发表于 2018-4-18 11:51:32 | 显示全部楼层
Es5:         this 的 指向 : 哪个函数调用了谁  this 就指向谁

ES6:         this 的 指向 : 谁定义了 this  this 就指向谁
回复

使用道具 举报

664

主题

881

帖子

5169

积分

超级版主

Rank: 8Rank: 8

积分
5169
 楼主| 发表于 2018-4-18 11:51:57 | 显示全部楼层
  1. ES5 的 写法:
  2.                 var arr = [1,2,3,4,5]
  3.                 var odd = arr.map(function(v){
  4.                         return v + 1     //这里 v  就是循环里面的值
  5.                 })
  6.                 console.log(odd)   //结果 2,3,4,5,6
  7.        
  8.         ES6 的 写法:
  9.                 {
  10.                         let events = [1,2,3,4]
  11.                         let odds = events.map( v => v+1);
  12.                        
  13.                         console.log(odds)
  14.                
  15.                 }
复制代码
回复

使用道具 举报

664

主题

881

帖子

5169

积分

超级版主

Rank: 8Rank: 8

积分
5169
 楼主| 发表于 2018-4-18 11:52:49 | 显示全部楼层
默认参数:
  1. Es6 写法:        function f(x,y = 7 , z = 42){ return x + y + z        }
  2.         必选参数:
  3.                 {
  4.                                        
  5.                         function checkParameter(){
  6.                                 throw new Erroe('can\'t be empty')
  7.                         }
  8.                         function f(x = checkParameter(),y = 7, z= 42){
  9.                                 return x + y + z
  10.                         }
  11.                         try{
  12.                         }catch(e){
  13.                                 console.log(e)
  14.                         } finally{
  15.                         }
  16.                 }
复制代码
回复

使用道具 举报

664

主题

881

帖子

5169

积分

超级版主

Rank: 8Rank: 8

积分
5169
 楼主| 发表于 2018-4-18 11:53:35 | 显示全部楼层
可变参数的处理
可变长度扩展符号 ...a  这就是列表的意思 所以下面的操作
  1. function f(...a){
  2.                 var sum = 0;
  3.                 a.forEach(item=>{
  4.                   sum+=item*1
  5.                 });
  6.                 return sum
  7.         }
复制代码
回复

使用道具 举报

664

主题

881

帖子

5169

积分

超级版主

Rank: 8Rank: 8

积分
5169
 楼主| 发表于 2018-4-18 11:54:24 | 显示全部楼层
数组合并
  1.         //ES5 的写法:
  2.                 var params = ['hello', true ,7];
  3.                 var other = [1,2].concat(params);
  4.                         console.log(other);
复制代码
  1. //ES6 的写法:
  2.         {
  3.         let params = ['hellow' , true ,7]
  4.         var other = [1 , 2 , ...params];
  5.         console.log(other)
  6.        
  7.         };
复制代码
回复

使用道具 举报

664

主题

881

帖子

5169

积分

超级版主

Rank: 8Rank: 8

积分
5169
 楼主| 发表于 2018-4-19 23:10:10 | 显示全部楼层
模板字符串:
  1. var name='胖子';var age = '28console.log(name + '的年龄是'+ age);
复制代码
ES6写法   注意 console里面的不是单引号 而是 ESC下面的 那个 啥符号来着  
  1. var name='胖子';var age = '28console.log(`${name}的年龄是${age}`)
复制代码

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表