es6的一些新特性

1  Defailt Parameters(默认参数)
    es6中可以直接将默认值放在函数申明里;
    例:

var test = function(a=1,b=2,c=3){
        console.log(a+b+c);
    }


    
2  Template Literals(模板对象)
    es6中可以将变量直接在字符串中使用
    例:

 var url = 'http://sup-project.cn';
 var test = 'my web page is ${url}';

3  Multi-line Strings (多行字符串)
    es6中表示多行字符串可以利用反引号直接回车换行表示,类似div中直接输入文字;
    例: 

 var test = 'this is first line
         this is second line
         this is third line.';

4  Arrow Functions in(箭头函数)
   在es5中经常会有这样的操作

   var _this = this;//var $this=this;
   $('.btn').click(function(event){
      _this.sendData();
   })


   在es6中可以用箭头函数省去这一步
   例:

   $('.btn').click((event) =>{
     this.sendData();
   })


   箭头函数不仅仅局限于这种用法,他可以搭配任何老函数使用
   并且使用了箭头函数后该行代码会变成表达式。

5  Class(类)
   es6终于支持类了,定义较之es5简单多了

   class Animal {
      constructor() {
      this.type = 'animal';
   }
   says(say) {
      console.log(this.type + ' says ' + say);
   }
   }
 
   let animal = new Animal();
   animal.says('hello'); //animal says hello
 
   class Cat extends Animal {
       constructor() {
       super();
       this.type = 'cat';
   }
   }
 
   let cat = new Cat();
   cat.says('hello'); //cat says hello


   
6  Modules(模块)
   es6支持本地模块
   例:

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


   用法类似java;

7  let与const
   let 定义的变量不会被变量提升,const 定义的常量不能被修改,let 和 const 都是块级作用域

8 扩展运算符[...]

    ...表示将数组转化为一个个元素;

//数组拼接
//ES5
let a = [1,2,3];
let b = [4,5];
let c = a.concat(b);
//ES6
let a = [1,2,3];
let b = [4,5];
let c = [...a,...b];

 

你可能感兴趣的:(javascript)