zoukankan      html  css  js  c++  java
  • 参数和函数形参 到 解构和不完全解构

    函数的参数和形参

    声明一个有三个形参的函数 where

    function where(a,b,c){ ... }

    而我们调用的时候执行 

    where(1,2,3,4,5){....}

    此时参数 1、2、3会分别赋值给 a、b、c,参数4、5则不会赋值给任何形参。但是我们已让可以通过 隐式参数 arguments 去得到他们。

    再来看下ES6中的解构。

    设么是解构:ES6 允许按照一定模式,从数组和对象中提取值,对变量进行赋值,这被称为解构。

    let [a, b, c] = [1, 2, 3];

    a   // 1

    b   // 2

    c   // 3

    上面例子表示,可以从数组中提取值,按照对应位置,对变量赋值。

    本质上,这种写法属于“模式匹配”,只要等号两边的模式相同,左边的变量就会被赋予对应的值。下面是一些使用嵌套数组进行解构的例子。

    let [foo, [[bar], baz]] = [1, [[2], 3]];
    foo // 1
    bar // 2
    baz // 3
     
    let [ , , third] = ["foo", "bar", "baz"];
    third // "baz"
     
    let [x, , y] = [1, 2, 3];
    x // 1
    y // 3
     
    let [head, ...tail] = [1, 2, 3, 4];
    head // 1
    tail // [2, 3, 4]
     
    let [x, y, ...z] = ['a'];
    x // "a"
    y // undefined
    z // []

    如果解构不成功,变量的值就等于undefined

    我只是觉得解构这点与函数的实参形参这块,有一些相似,就简单记录下,当然各位想去更深入的了解ES6的话,可以去看下专业书籍。
  • 相关阅读:
    基于Metaweblog API 接口一键发布到国内外主流博客平台
    uva144 Student Grants
    Uva 10452
    Uva 439 Knight Moves
    Uva 352 The Seasonal War
    switch语句
    java——基础知识
    我的lua学习2
    codeforces 431 D. Random Task 组合数学
    codeforces 285 D. Permutation Sum 状压 dfs打表
  • 原文地址:https://www.cnblogs.com/1rookie/p/7231536.html
Copyright © 2011-2022 走看看