回顾,学习,并总结ES6的新特性

一. 默认参数

      我们常常会用这样的方式来定义自己的默认参数,但是试想一下如果是0呢 ,  

function man (height, name, age) {
    var height = height || '20';
    var name = name || 'Jack';
    var age = age || '25';
}

es6后我们可以这样了

var man = function(height = 50, name = 'Jack', age = '25') {
  ...
}

二.模版对象(在字符串中插入变量)

es5方式 

var url = 'http://'+url+'.com'

es6方式(反引号并加入新语法${})

var url = `http://${url}.com`

三.多行字符串

es5方式

var str = 'Cambridge English Qualifications are in-depth exams that make '+
            'learning English enjoyable, effective and rewarding.'+
            'Our unique approach encourages continuous progression with'+
            'a clear path to improve language skills. We have qualifications for schools, general and higher education, and business.'  

es6后我们只需要将字符串用反引号引用就行了


var str = `Cambridge English Qualifications are in-depth exams that make 
            learning English enjoyable, effective and rewarding.
            Our unique approach encourages continuous progression with
            a clear path to improve language skills. We have qualifications for schools, general and higher education, and business.`

四.结构赋值

类似这种

const {name, age} = man
...

五.箭头函数

es5

function man (height, name, age) {
    var height = height || '20';
    var name = name || 'Jack';
    var age = age || '25';
}

es6

const man = (height, name, age) =>{
    var height = height || '20';
    var name = name || 'Jack';
    var age = age || '25';
}

() 其实是可选的,但当超过一个参数的时候就是必须的

六.Promises

之前我们需要使用异步延迟加载的时候可能是这样的

setTimeout(function(){
  console.log('延时啦!');
}, 1000);

现在我们可以这么写

var wait =  new Promise(function(resolve, reject) {
  setTimeout(resolve, 1000);
}).then(function() {
  console.log('延时啦!');
});

有时候可能会想,Promises有什么好处呢

有时候我们可能会遇到一些复杂场景,比如需要用到另一个请求结果数据中的数据去完成剩下的逻辑,甚至可能多层嵌套使用

那又可能是这样的

setTimeout(function(){
  console.log('哈哈哈');
  setTimeout(function(){
    console.log('嘿嘿嘿!');
  }, 1000)
}, 1000);
。。。

但是是用Promises 后

var wt =  ()=> new Promise((resolve, reject)=> {setTimeout(resolve, 1000)});
wt()
    .then(function() {
        console.log('哈哈哈!')
        return wait1000()
    })
    .then(function() {
        console.log('嘿嘿嘿!')
    })

再也不用不停的嵌套了

七. let 和 const

可能你会说, let好比是变量, const好比是常量,是的,没错,但也没这么简单

仔细看这句: Let 是一种新的变量申明方式,它允许你把变量作用域控制在块级里面。 

function man (is) {
  var count = 0;
  if (is) {
    var count = 1;
  }
  { 
    var count = 100;
    {
      var count = 1000;
    }
  }  
  return count;
}
console.log(man(true));

返回的结果是1000 var 只是限制函数作用域。

function man (is) {
  let count = 0;
  if (is) {
    let count = 1;
  }
  { 
    let count = 100;
    {
      let count = 1000;
    }
  }  
  return count;
}
console.log(man(true));

返回的结果是1 因为 let 限制块级作用域

function man (is) {
  const count = 0;
  if (is) {
    const count = 1;
  }
  { 
    const count = 100;
    {
        const count = 1000;
    }
  }  
  return count;
}
console.log(man(true));

这回返回了0, 因为const 是不可改变的。 初始化后各个块级作用yu互不影响

八.类class

学过java的应该会喜欢这个

九.模块Modules

例如


export var port = 3000;
export function getAccounts(url) {
  ...
}

然后在其他文件中

import {port, getAccounts} from 'module';
console.log(port); // 3000

暂时总结到这里啦

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值