资讯专栏INFORMATION COLUMN

【ES6入门07】:函数扩展

YorkChen / 990人阅读

摘要:函数扩展函数参数的默认值参数的作用域的参数将所有参数转换为数组表示参数扩展运算符箭头函数只有一个参数可以省略没有参数写当返回值为对象时,用包住返回值,不然会报错注意,使用箭头函数时,注意的指向函数尾调用判别是否函数尾调用的方法函数的最后一个

函数扩展 函数参数的默认值
{
    function test(x, y = "world") {
        console.log(x, y);
    }
    test("hello"); // hello world
    test("hello", "can"); // hello can
}
参数的作用域
{
    let x = "hi";
    function test2(x, y = x) {
        console.log(x, y);
    }
    function test3(a, y = x) {
        console.log(a, y);
    }
    test2("can"); // can can
    test3("can"); // can hi
}
rest的参数
{
    // ...arg将所有参数转换为数组 ...表示rest参数
    function test4(...arg) {
        for (let v of arg) {
            console.log(v);
        }
    }
    test4(1, 2, 3, "a"); // 1  2  3  "a"

    // 扩展运算符
    console.log(...[1, 2, 4]); // 1 2 4
}
箭头函数
{
    let fn = arg => arg * 2; // 只有一个参数可以省略()
    let fn2 = () => 5; // 没有参数写()
    // 当返回值为对象时,用()包住返回值,不然会报错
    let fn3 = (name, age) => ({name, age});
    console.log(fn(3)); // 6
    console.log(fn2()); // 5
    console.log(fn3("can", 18)); // {name: "can", age: 18}
    // 注意,使用箭头函数时,注意this的指向
}
函数尾调用
{
    // 判别是否函数尾调用的方法:函数的最后一个语句是不是一个函数
    // 当函数嵌套过多,当一个函数依赖另一个函数时,可使用尾调用优化性能
    function test(x) {
        console.log(x);
    }
    function fn(x) {
        return test(x); // 尾调用,最后的语句是函数
    }
    fn(123); // 123
}

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/98550.html

相关文章

  • 2017-07-07 前端日报

    摘要:前端日报精选了解中的全局对象和全局作用域张鑫旭鑫空间鑫生活子进程你应该知道的一切直出内存泄露问题的追查实践我他喵的到底要怎样才能在生产环境中用上模块化腾讯前端大会大咖说大咖干货,不再错过发布发布中文翻译在使用进行本地开发代码 2017-07-07 前端日报 精选 了解JS中的全局对象window.self和全局作用域self « 张鑫旭-鑫空间-鑫生活Node.js 子进程:你应该知道...

    import. 评论0 收藏0
  • ES6入门之对象的扩展

    摘要:循环遍历对象自身的和继承的可枚举属性不含属性。返回一个数组,包含对象自身的所有属性的键名。目前,只有对象方法的简写法可以让引擎确认,定义的是对象的方法。showImg(https://user-gold-cdn.xitu.io/2019/5/21/16ada8456223b0e1); 1. 属性的简洁表示法 在ES6中 允许直接写入变量和函数,作为对象的属性和方法,使得代码的书写更为简洁。...

    RiverLi 评论0 收藏0
  • ES6入门之对象的扩展

    摘要:属性的简洁表示法在中允许直接写入变量和函数,作为对象的属性和方法,使得代码的书写更为简洁。循环遍历对象自身的和继承的可枚举属性不含属性。返回一个数组,包含对象自身的所有属性的键名。 showImg(https://segmentfault.com/img/remote/1460000019259004?w=1282&h=1920); 1. 属性的简洁表示法 在ES6中 允许直接写入变量...

    AWang 评论0 收藏0
  • ES6入门函数扩展

    摘要:如果所有函数都是尾调用,那么完全可以做到每次执行时,调用帧只有一项,这将大大节省内存。等同于等同于注意,只有不再用到外层函数的内部变量,内层函数的调用帧才会取代外层函数的调用帧,否则就无法进行尾调用优化。 showImg(https://segmentfault.com/img/bVbrTHp?w=1080&h=1920); 1. 函数参数的默认值 1.1 用法 在ES6之前是不能为...

    dackel 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<