听北风 2021-02-20 11:48 采纳率: 100%
浏览 44
已采纳

关于JavaScript语法问题

  let { query, pathname } = url.parse(req.url, true);这样的语法应该怎么理解??

  • 写回答

1条回答 默认 最新

  • 幻灰龙 2021-02-20 11:58
    关注

    url.parse 返回的是一个对象,这个对象里含有querey, pathname属性,原来你应该这么写:

    let ret = url.parse(req.url,true)
    
    let query = ret.query;
    
    let pathname = ret.pathname;

    ES6提供了对象解构赋值语法,支持直接从对象结构出含有的属性,语法是:

    let {var1, var2} = {var1:…, var2:…}

    因此,上面的代码简化为

    let { query, pathname } = url.parse(req.url, true);

    当然,如果url.parse返回了null/undefined,上述代码会报错,所以使用解构赋值前最好判断下是否为null

    let ret = url.parse(req.url, true);
    
    if(ret==null){
      return;
    }
    
    let {query, pathname} = ret;
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?