ECMASCript6 新特性介绍

一、介绍

1.历史

  1. ECMAScript和JavaScript

    • ECMAScrip是标准,JavaScript是实现
      • 类似于HTML5是标准,IE10、Chrome、FF都是实现
      • 换句话说,将来也能有其他XXXScript来实现ECMA
    • ECMAScript简称ECMA或ES
    • 目前版本
      • 低级浏览器主要支持ES 3.1
      • 高级浏览器正在从ES 5过渡到ES 6
  2. 历史版本

时间 ECMA JS 解释
1996.11 ES 1.0 JS稳定 Netscape将JS提交给ECMA组织,ES正式出现
1998.06 ES 2.0 ES2正式发布
1999.12 ES 3.0 ES3被广泛支持
2007.10 ES 4.0 ES4过于激进,被废了
2008.07 ES 3.1 4.0退化为严重缩水版的3.1
因为吵得太厉害,所以ES 3.1代号为Harmony(和谐)
2009.12 ES 5.0 ES 5.0正式发布
同时公布了JavaScript.next也就是后来的ES 6.0
2011.06 ES 5.1 ES 5.1成为了ISO国际标准
2013.03 ES 6.0 ES 6.0草案定稿
2013.12 ES 6.0 ES 6.0草案发布
2015.06 ES 6.0 ES 6.0预计发布正式版
JavaScript.next开始指向ES 7.0

2.兼容性

1.兼容性

2.编译与转换,将ES6编译转换成低版本浏览器支持的JS代码

  • 在线编译,使用语法解析转换工具将ES6语法解析转换为大部分浏览器识别的ES5语法,通用的转换方案有babel,traceur,jsx,typescript,es6-shim,其中,Bable是比较常用的,参见Bable,可以引入browser.js使浏览器支持Babel;
  • 提前编译

2.ES6特性

1.变量

1.var的缺陷

  • 可以重复声明,var a =5; var b = 7; var a = 12;
  • 无法限制修改,对于某些常量,如PI等可以任意修改;
  • 没有块级作用域,var作用于函数,而不是作用于块语句;

2.新的关键字

  • let: 不能重复声明,变量可以修改,块级作用域
  • const: 不能重复声明,变量不可以修改,块级作用域
var aBtn = document.getElementByTagName('button');
(function(i){
   
    for(var i = 0; i < aBtn.length; i++){
    aBtn.i.onclock = function(){
        alert(i);
}
})(i)
}

用let不用闭包来解决以上问题:

var aBtn = document.getElementByTagName('button');
for(var let = 0; i < aBtn.length; i++){
    aBtn.i.onclock = function(){
   
        alert(i);
    }
}

2.函数

1.箭头函数

省略条件

  • 如果只有一个参数,()可以省略;
  • 如果只有一个return语句,{}可以省略
let show = function(){
    alert('13')  
}
show();
let show = ()=>{
    alert('13')
}
function add(a, b){
    return a+b
}
add(5,12);
(a, b)=>a+b

2.函数参数

1.参数扩展/数组展开

  • 参数扩展:…args,用来收集剩余参数,但必须是参数列的最后一个,例如:
function add(a, b, ...args){
   
    return a+b;
};
add(1,2,3,4,4,6);//函数中的3,4,4,6会传给...args;
    <
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值