【问题标题】:What does this javascript syntax means: const { headers, method, url } = request; [duplicate]这个javascript语法是什么意思: const { headers, method, url } = request; [复制]
【发布时间】:2017-10-30 11:36:11
【问题描述】:

不清楚这个语法是什么意思

const { headers, method, url } = request;

在这篇短文中找到https://nodejs.org/en/docs/guides/anatomy-of-an-http-transaction/

【问题讨论】:

    标签: javascript node.js


    【解决方案1】:

    它叫destructuring operator

    解构赋值语法是一个 JavaScript 表达式 可以从数组中解压缩值,或从 对象,转换为不同的变量。

    简单示例:

    var obj={
       "a":2,
       "b":3
    }
    let {a,b}=obj;
    console.log(a,b);

    从你的例子中,我看到request 是一个对象,语句被翻译成

    headers = request.headers
    

    但您也可以将destructuring operator 应用于数组

    var foo = [1, 2, 3];
    var [one, two, three] = foo;
    console.log(one);
    console.log(two);
    console.log(three);

    【讨论】:

    • 你能举例说明它是如何工作的吗?
    • @TKoL,已更新。
    【解决方案2】:
    const headers = request[0];
    const method = request[1];
    const url = request[2];
    

    如果请求是一个对象,

    const headers = request.headers;
    const method = request.method;
    const url = request.url;
    

    【讨论】:

    • 我的错。已更新。
    【解决方案3】:

    如果request是一个对象,则表示:

    const headers = request.headers;
    const method = request.method;
    const url = request.url;
    

    【讨论】:

    • 如果request 是一个数组则不是
    • const {url} 和 const url 有区别吗?
    【解决方案4】:

    这叫做解构。查看https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Destructuring_assignment IE。您可以在对象内部获取嵌套属性。在你的情况下,它是 res

    通过将 props 解构为局部变量而不是像 request.headers 那样编写整个命名空间,可以更方便地从对象访问 props

    【讨论】:

      猜你喜欢
      • 2010-10-05
      • 2011-10-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-19
      • 1970-01-01
      • 2019-01-27
      • 1970-01-01
      相关资源
      最近更新 更多