美文网首页1024ES6JavaScript 进阶营
9.ES6函数可变参数和对象扩展

9.ES6函数可变参数和对象扩展

作者: 圆梦人生 | 来源:发表于2019-02-12 15:18 被阅读2次

1、ES6中函数参数支持可变(...)三个点表示,表示参数个数不固定,参数以数组方式存储,参数必须是最后一个
2、ES6数组和对象都可以(...)三个展开(解构)
3、ES6函数参数默认值

案例

<html>
    <head>
        <title>对象的扩展</title>
        <script>
            // 1. 函数参数的可变参数
            // 函数参数使用 ... 表示可变参数
            let showVal = function(obj1, obj2, ...args){
                //  a, b , ["c", "d", "e",  {title: 't1', name: 'n2'}, [1, 2, 3] ]
                console.log(obj1, obj2, args);
                // args 长度为 5
                console.log(args.length);
            }
            
            showVal('a', 'b', 'c', 'd', 'e', {title: 't1', name: 'n2'}, [1, 2, 3]);
            
            // 2. 将可变参数作为参数传入方法中
            let showVal2 = (...args)=>{
                // 传入方法3, 展开参数
                showVal3(...args)
            }
            let showVal3 = (a, b) => {
                console.log('a + b = %o', a + b)
            }
            // 结果:a + b = 9
            showVal2(4, 5) 
            
            // 3.数组的展开
            let array1 = [1, 2, 3]
            let array2 = [4, 5,6]
            let array3 = [...array1, ...array2, 7, 8, 9]
            // [1, 2, 3, 4, 5, 6, 7, 8, 9]
            console.log(array3);
            
            // 4.对象的扩展
            let obj = {
                a: 'aVal',
                b: 'bVal',
                arr1: ['a', 'b', 'c']
            }
            let obj1 =  [ ...obj.arr1 ]; //将obj.arr1值复制到obj1中
            // ["a", "b", "c"]
            console.log(obj1);
            // 字符串的扩展
            let str = 'abcdefg';
            let str2 = [...str];
            // ["a", "b", "c", "d", "e", "f", "g"]
            console.log(str2);
          
            // 5.函数参数默认值,调用函数传入了参数值使用传入的,否则使用默认的
            let showVal4 = (a, b = 5, c =12)=>{
                console.log(a, b, c);
            }
            // 1 5 12
            showVal4(1);
            // 1 2 3
            showVal4(1, 2, 3);
        </script>
    </head>
    <body>
        
    </body>
</html>

相关文章

  • 9.ES6函数可变参数和对象扩展

    1、ES6中函数参数支持可变(...)三个点表示,表示参数个数不固定,参数以数组方式存储,参数必须是最后一个2、E...

  • Lua可变参数

    Lua 函数可以接受可变数目的参数,和 C 语言类似,在函数参数列表中使用...表示函数有可变的参数。 把可变参数...

  • 12. 可变参数函数

    12. 可变参数函数 什么是可变参数函数 可变参数函数是一种参数个数可变的函数。 语法 如果函数最后一个参数被记作...

  • Kotlin 笔记(一) 基础知识点--java对比

    创建对象 类型声明 字符串模板 方法 Kotlin 特性 : 函数参数默认值和可变参数 对Kotlin函数中的某个...

  • 函数

    函数 定义: 空函数 参数检查 返回多个值 默认参数 默认参数必须为不变对象 需要改为 可变参数 将 list 转...

  • Python 函数相关的两个问题

    函数 开发陷阱(一): 可变默认参数 函数调用之后, 会影响到之后调用函数的结果。这是因为当默认参数值是可变对象的...

  • Python 那些不为人知的冷知识

    1、默认参数最好不为可变对象 函数的参数分三种 可变参数 默认参数 关键字参数 Python 中的 def 语句在...

  • ★10.关于可变参数模板

    可变参数函数模板 可变参数类模板 可变参数函数模板的使用 转发参数包

  • JavaScript----扩展运算符

    扩展运算符为 ...变量名称 可以用在函数参数上,这样函数的参数就成为了可变参数 解释: 会把形参的逐个参数取...

  • 函数的,参数,变量作用域,递归,匿名函数

    一:函数参数的介绍 1:可变和不可变参数 1.1:必选参数 1.2:默认参数 1.3:可变参数 1.4:关键字参数...

网友评论

    本文标题:9.ES6函数可变参数和对象扩展

    本文链接:https://www.haomeiwen.com/subject/kplkeqtx.html