【问题标题】:What is the equivalent of python's _ in javascript?javascript中python的_相当于什么?
【发布时间】:2016-01-06 08:40:07
【问题描述】:

在 python 中,_ 用作throwaway variable。 javascript 中有一个惯用的公认名称吗?

【问题讨论】:

  • _ 被 JS 中的下划线库使用。所以,最好使用dummy 或其他东西。
  • @AJK:哎呀,当然,你是对的..
  • 我从来没有使用过“一次性变量” - 所以这是一个奶牛的意见
  • @JaromandaX:这里有一个例子:stackoverflow.com/q/34628857/647991
  • @gonvaled 我认为如果它回答了您的问题,您应该接受我的回答,否则此问题将保留在“未回答”部分。

标签: javascript python


【解决方案1】:

现在,您可以使用数组解构,不需要 var。

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Destructuring_assignment

例如:

[,b] = [1,2];
console.log(b);

将输出:

2

并且值 1 不会分配给任何未使用的 var。

【讨论】:

    【解决方案2】:

    在 JavaScript 中没有像 Python 那样被接受的一次性变量命名。
    虽然,通常在软件工程领域,工程师倾向于称这些变量为:

    虚拟、临时、垃圾、黑洞、垃圾。

    使用这些变量命名或任何暗示工程师阅读您的代码的名称,即这些变量没有特定用途。

    考虑到这一点,我强烈不建议使用如下符号作为一次性变量:

    _, $

    除非有像 Python 这样的显式约定,否则不要将这些符号用作一次性变量,否则可能会干扰其他语言中的其他命名约定和库,例如 JS 中的下划线和 jQuery 库。

    当然,如果您以后发现该变量有特定用途,请务必重命名它。

    【讨论】:

      【解决方案3】:

      通常,您会将函数的签名声明为数组。只需省略其中一个

      const foo = (bar,baz,) => bar+baz;
      foo(3,4,5) // → 7
      

      只要函数参数的声明是最后一个,这显然有效;不像this answer,它对嵌入在数组中的已经声明的变量有效。这个:

      const foo = (, bar,baz) => bar+baz;
      

      将失败:

      Uncaught SyntaxError: expected expression, got ','
      

      您可以使用任何表达式破解您的方法。但是,您需要在每次调用中使用相同的表达式

      const quux = ([], bar,baz) => bar+baz;
      quux(42,3,4); // → Uncaught TypeError: (destructured parameter) is not iterable
      quux([],3,4); // → 7
      

      这个常量可以是任何东西,所以你也可以称它为“dummy”,但你仍然需要在每次调用中重复。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-10-13
        • 2021-01-17
        • 2011-06-16
        • 2010-09-07
        • 2013-04-13
        • 1970-01-01
        相关资源
        最近更新 更多