ES6 (Es2015)新特性

ES6 (Es2015)新特性

ES6 (Es2015)新特性

ES6, 全称ECMAScript 6.0, 是JaveScript的下一个版本标准, 2015.06发版.
ECMAScript是JavaScript语言的国际标准,JavaScript是ECMAScript的实现

一、变量与常量

先看es5写法

<script>
  var a = 10;
  var a = 15;
  
  var b = 20;
      b = 16;


  //有三个按钮绑定点击事件点击,依次弹出1,2,3
  window.onload = function(){
      var oBtn = document.getElementsByTagName('button');
      for(var i =0; i < oBtn.length;i++){
          oBtn[i].addEventListener('click',function(){
              alert(i); // 3,3,3
          })
      }
  }
  //解决办法: 加立即执行函数
  window.onload = function () {
      var oBtn = document.getElementsByTagName('button');
      for (var i = 0; i < oBtn.length; i++) {
          (function (i) {
              oBtn[i].addEventListener('click', function () {
                  alert(i); //0,1,2
              })
          })(i);
      }
  }
</script>

我们再看es6写法

<script>
  let a = 10;
  let a = 15;//error
  
  let b = 11;
      b = 22;//22
  
  const c = 20;
  const c = 25; //error
  
  const d = 30;
        d = 35; //16
  


  window.onload = function(){
      var oBtn = document.getElementsByTagName('button');
      for(let i =0; i < oBtn.length;i++){
          oBtn[i].addEventListener('click',function(){
              alert(i); // 0,1,2
          })
      }
  }
</script>

var 可以重复声明,无限次修改,没有作用域
let 不能重复声明,变量可以修改值,有作用域
const 不能重复声明,常量不可以修改值,有作用域

二、解构赋值

<script>
  let [a,b] = [1,2]; 
    console.log(a,b); //1,2
    
    let [a,b];
    [a,b] = [1,2]; //error 
    
    let {name,age,job} = {name:"bobocode",age:23,job:'web'}
    console.log(name,age,job);  // bobocode 23 web
    
    let [{a,b},[arr]] = [{a:'testa',b:'testb'},[1,2,3]];
    console.log(a,b,arr); // testa testb [1, 2, 3]
    
    let arr1 = [1,2,3];
    let arr2 = [5,6,7];
    let newArr = [...arr1,...arr2];
    console.log(newArr); //[1, 2, 3, 5, 6, 7]
</script>

解构赋值声明和赋值不能分开写
解构赋值等号左右两边的结构必须相同
解构赋值右边必须是有意义的结构(arr,json等)

三、数组新方法

<script>
 //map(映射)
  [1,2,3,4].map(function(item){
      console.log(item*2); //1,4,9,16 
  });
  
 //reduce(总和)...

点击查看剩余70%

{{collectdata}}

网友评论0