zoukankan      html  css  js  c++  java
  • ES6 第九节 ES6中的箭头函数和扩展

    ES6 第九节 ES6中的箭头函数和扩展

    @(ES6)[es6, ES6]


    第九节 ES6中的箭头函数和扩展

    先回顾一下ES5中的函数写法,写一个加法计算的函数。

    function add(a,b){
        return a+b;
    }
    console.log(add(1,2));
    

    我们声明了一个add函数,然后传入a和b两个值,返回a+b的值。 然后我们在控制台打印了这个函数的返回结果,这里是3。

    默认值

    在ES6中给我们增加了默认值的操作,我们修改上边的代码,可以看到现在只需要传递一个参数也是可以正常运行的。

    function add(a,b=1){
        return a+b;
    }
    console.log(add(1));
    

    主动抛出错误

    在使用Vue的框架中,我们经常看到框架主动抛出一些错误,比如v-for必须有:key值。ES6中我们使用throw new Error( xxxx ),就可以抛出错误。

    function add(a,b=1){
        if(a == 0){
            throw new Error('This is error')
        }
        return a+b;
    }
    
    console.log(add(0));
    

    函数中的严谨模式

    我们在ES中就经常使用严谨模式来进行编程,但必须写在代码最上面,相当于全局使用。在ES6中我们可以写在函数体中,相当于针对函数来使用。

    function add(a,b=1){
        'use strict'
        if(a == 0){
            throw new Error('This is error');
        }
         return a+b;
    }
    console.log(add(1));
    

    上边的代码如果运行的话,浏览器控制台会报错,这是ES6中的一个坑,错误的原因就是如果你使用了默认值,再使用严谨模式的话,就会有冲突,所以我们要取消默认值的操作,这时候你再运行就正常了。

    function add(a,b){
        'use strict'
        if(a == 0){
            throw new Error('This is error');
        }
        return a+b;
    }
    
    console.log(add(1,2));
    

    获得需要传递的参数个数

    如果在使用别人的框架时,不知道别人的函数需要传递几个参数怎么办?
    ES6为我们提供了得到参数的方法(xxx.length)。我们用上边的代码看一下需要传递的参数个数。

    function add(a,b){
        'use strict'
        if(a == 0){
            throw new Error('This is error');
        }
        return a+b;
    }
    console.log(add.length);
    

    这时控制台打印出了2,但是如果我们去掉严谨模式,并给第二个参数加上默认值的话,这时候add.length的值就变成了1, 也就是说它得到的是必须传入的参数

    箭头函数

    在学习Vue的时候,我已经大量的使用了箭头函数,我们来看一个最简单的箭头函数。也就是上边我们写的add函数,进行一个改变,写成箭头函数。

    var add =(a,b=1) => a+b;
    console.log(add(1));
    

    {}的使用

    在箭头函数中,方法体内如果是两句话,那就需要在方法体外边加上{}括号。例如下边的代码就必须使用{}。

    var add =(a,b=1) => {
        console.log('da0sy')
        return a+b;
    };
    console.log(add(1));
    

    箭头函数中不可加new,也就是说箭头函数不能当构造函数进行使用。

  • 相关阅读:
    unity3d 中文乱码解决方法——cs代码文件格式批量转化UTF8
    Unity SteamVR插件集成
    Unity3D Layer要点
    Unity利用Sapi进行windows语音开发
    Scratch入门课程(1)——把工具准备好
    【blockly教程】Blockly编程案例
    【blockly教程】第六章 Blockly的进阶
    【blockly教程】第五章 循环结构
    【blockly教程】第三章Blockly顺序程序设计
    【blockly教程】第四章 Blockly之选择结构
  • 原文地址:https://www.cnblogs.com/Elva3zora/p/12536828.html
Copyright © 2011-2022 走看看