zoukankan      html  css  js  c++  java
  • ES6课程---9、三点运算符

    ES6课程---9、三点运算符

    一、总结

    一句话总结:

    三点运算符作用有两个,一是做可变参数,替代arguments,二是做扩展运算符
    1、rest(可变,剩余)参数
    用来取代arguments,但比arguments灵活,只能是最后部分形参参数
    function add(...values) {
      let sum = 0;
      for(value of values) {
          sum += value;
      }
      return sum;
    }
    console.log(add(1,23,4,5,6));
    
    2、扩展运算符
    let arr1 = [1,3,5];
    let arr2 = [2,...arr1,6];
    arr2.push(...arr1);

    1、三点运算符的实质是什么?

    调用iterator接口,来遍历,所以,只要有iterator接口的结构,都能够用...运算符来展开,比如数组、Set等
    // console.log(...'www.fanrenyi.com');
    // console.log(new Set([1,2,2,3]));
    // console.log(...new Set([1,2,2,3]));
    // console.log(...{name:'fan',age:11});// Uncaught TypeError: Found non-callable @@iterator

    二、三点运算符

    博客对应课程的视频位置:9、三点运算符
    https://www.fanrenyi.com/video/24/206

     1 <!DOCTYPE html>
     2 <html lang="en">
     3 <head>
     4     <meta charset="UTF-8">
     5     <title>三点运算符</title>
     6 </head>
     7 <body>
     8 <!--
     9 1、rest(可变,剩余)参数
    10 用来取代arguments,但比arguments灵活,
    11 限制:只能接收最后部分形参参数
    12 function add(...values) {
    13   let sum = 0;
    14   for(value of values) {
    15       sum += value;
    16   }
    17   return sum;
    18 }
    19 console.log(add(1,23,4,5,6));
    20 
    21 2、扩展运算符
    22 let arr1 = [1,3,5];
    23 let arr2 = [2,...arr1,6];
    24 arr2.push(...arr1);
    25 
    26 3、三点运算符的实质
    27 调用iterator接口,来遍历
    28 所以,只要有iterator接口的结构,都能够用...运算符来展开
    29 
    30 4、实际应用
    31 
    32 -->
    33 <script>
    34     //一、rest(可变)参数
    35     // function fun(...values) {
    36     //     console.log(arguments);
    37     //     // arguments.forEach(function (item, index) {
    38     //     //     console.log(item, index);
    39     //     // });
    40     //     console.log(values);
    41     //     values.forEach(function (item) {
    42     //         console.log(item);
    43     //     })
    44     // }
    45     // fun(1, 2, 3);
    46 
    47 
    48     //2、只能做最后部分的参数
    49     // function add(a,b,...values) {
    50     //     console.log(a);
    51     //     console.log(b);
    52     //     console.log(values);
    53     //     let sum = 0;
    54     //     for(let value of values) {
    55     //         sum += value;
    56     //     }
    57     //     return sum;
    58     // }
    59     // console.log(add(1,2,4,5,6));
    60 </script>
    61 
    62 <script>
    63     //2、扩展运算符
    64     // let arr = [2,3,4,5,6];
    65     // let arr1 = ['abc',...arr, 'fg'];
    66     // //let arr1 = ['abc',2,3,4,5,6, 'fg'];
    67     // console.log(arr1);
    68     // arr1.push(...arr);
    69     // //arr1.push(2,3,4,5,6);
    70     // console.log(arr1);
    71 
    72     // console.log(...'www.fanrenyi.com');
    73     // console.log(new Set([1,2,2,3]));
    74     // console.log(...new Set([1,2,2,3]));
    75     // console.log(...{name:'fan',age:11});// Uncaught TypeError: Found non-callable @@iterator
    76 </script>
    77 </body>
    78 </html>
     
  • 相关阅读:
    难得之货,令人行妨
    Oracle死锁
    log4j杂记
    Oracle9或11使用了Oracle10的驱动引起的时间丢失
    程序员要重视过劳
    oracle提供的有用函数(待续)
    Mysql扩展之replication概述
    @autowired与@qualifer的使用区别备忘
    Oracle中的in参数的个数限制
    java版正则式提取替换示例
  • 原文地址:https://www.cnblogs.com/Renyi-Fan/p/12695509.html
Copyright © 2011-2022 走看看