• es6-----部分新特性详解


    ES6(ECMAScript 6)是即将到来的新版本JavaScript语言的标准,代号harmony(和谐之意,显然没有跟上我国的步伐,我们已经进入中国梦版本了)。上一次标准的制订还是2009年出台的ES5。目前ES6的标准化工作正在进行中,预计会在14年12月份放出正式敲定的版本。但大部分标准已经就绪,且各浏览器对ES6的支持也正在实现中

    一,箭头表达式(lambda表达式)

        我们知道在JS中回调是经常的事,而一般回调又以匿名函数的形式出现,每次都需要写一个function,甚是繁琐。当引入箭头操作符后可以方便地写回调了。请看下面的例子。

         

    var array = [1, 2, 3];
     //传统写法             
    array.forEach(function(v, i, a) {
    console.log(v);
    });
    //ES6
    array.forEach((v,i) => {console.log(v);console.log(i)});

    二.类的支持

     ES6中添加了对类的支持,引入了class关键字(其实class在JavaScript中一直是保留字,目的就是考虑到可能在以后的新版本中会用到,现在终于派上用场了)。JS本身就是面向对象的,ES6中提供的类 实际上只是JS原型模式的包装。现在提供原生的class支持后,对象的创建,继承更加直观了,并且父类方法的调用,实例化,静态方法和构造函数等概念都更加形象化。

    class Animal {
    	//ES6中新型构造器
        constructor(name) {
            this.name = name;
        }
        //实例方法
        sayName() {
            console.log('My name is '+this.name);
        }
    }
    //类的继承
    class Programmer extends Animal {                         //extends 继承于
        constructor(name) {
        	//直接调用父类构造器进行初始化
            super(name);
        }
        program() {
            console.log("I'm coding...");
        }
    }
    //测试我们的类
    var animal=new Animal('dummy'),
    wayou=new Programmer('wayou');
    animal.sayName();//输出 ‘My name is dummy’
    wayou.sayName();//输出 ‘My name is wayou’
    wayou.program();//输出 ‘I'm coding...’
    

      

    三.默认参数值

        现在可以在定义函数的时候指定参数的默认值了,而不用像以前那样通过逻辑或操作符来达到目的了。

    function sayHello(name){
    	//传统的指定默认参数的方式
    	var name=name||'dude';
    	console.log('Hello '+name);
    }
    //运用ES6的默认参数
    function sayHello2(name='dude'){
    	console.log(`Hello ${name}`);
    }
    sayHello();//输出:Hello dude
    sayHello('Wayou');//输出:Hello Wayou
    sayHello2();//输出:Hello dude
    sayHello2('Wayou');//输出:Hello Wayou
    

    四.let和const关键字

           可以把let看成var,只是它定义的变量被限定在了特定范围内才能使用,而离开这个范围则无效。const则很直观,用来定义常量,即无法被更改值的变量。

          

    for (let i=0;i<2;i++){
    console.log(i);//输出: 0,1
    }
    再如:
    function example(){
    let a=1; //此a的作用域仅限于 example方法
    console.log(a)
    }

    五.promises

          Promises是处理异步操作的一种模式,之前在很多三方库中有实现,比如jQuery的deffered 对象。当你发起一个异步请求,并绑定了.when(), .done()等事件处理程序时,其实就是在应用promise模                式。

    //创建promise
    var promise = new Promise(function(resolve, reject) {
        // 进行一些异步或耗时操作
        if ( /*如果成功 */ ) {
            resolve("Stuff worked!");
        } else {
            reject(Error("It broke"));
        }
    });
    //绑定处理程序
    promise.then(function(result) {      // .then方法中有2个回掉。第一个为成功回掉,第二个为失败回掉。如果promise执行的是resolve则执行成功回掉,如果是reject,则执行失败回掉
    	//promise成功的话会执行这里
        console.log(result); // "Stuff worked!"
    }, function(err) {
    	//promise失败会执行这里
        console.log(err); // Error: "It broke"
    });
    

      

    以上5个是最新最常用的es6新特性

  • 相关阅读:
    C 语言高效编程的几招——A few action of efficient C language programming
    UDP套接字——(DGRAM)
    初学数位DP--hdu 2089
    leetcode Reverse Nodes in k-Group
    CC+语言 struct 深层探索——CC + language struct deep exploration
    [置顶] JDK工具(一)–Java编译器javac
    非归档数据文件offline的恢复
    [置顶] OpenJDK源码研究笔记(九)-可恨却又可亲的的异常(NullPointerException)
    MSF溢出实战教程
    一些安全名词解释
  • 原文地址:https://www.cnblogs.com/8080zh/p/9289662.html
Copyright © 2020-2023  润新知