【问题标题】:What does it mean when variable value in round brackets?圆括号中的变量值是什么意思?
【发布时间】:2019-03-10 13:05:26
【问题描述】:

js中圆括号中的变量值是什么意思? 例如,

let a = (1,2,3);

这是什么意思,为什么 console.log(a) 输出为 3?

变量初始化中圆括号中的逗号运算符有什么用?

【问题讨论】:

  • 你试过运行这个吗?你的价值永远是最后一个价值。在这种情况下,它是 3
  • 圆括号没有任何影响。我想它们是为了阅读清晰,但它们本身没有意义。
  • 在 JavaScript 中?我认为这意味着作者认为他们在 Python... 您是否尝试记录 a 以找出值是什么?
  • 逗号运算符。返回最后一个元素。
  • @VLAZ 这里需要他们。如果你没有它们,逗号将分隔多个变量声明,你会得到一个语法错误。

标签: javascript


【解决方案1】:

分组需要括号。在let 语句中,逗号通常用于分隔正在声明的多个变量,例如

let a = 1, b = 2, c;

简称

let a = 1;
let b = 2;
let c;

如果你写

let a = 1, 2, 3;

你会得到一个语法错误,因为在逗号之后它需要另一个变量声明;相当于:

let a = 1;
let 2;
let 3;

第二个和第三个声明显然是错误的,因为23 不是变量名。

括号表示整个表达式1, 2, 3 用于初始化一个变量。

表达式1, 2, 3 使用Comma operator,它执行其每个子表达式并返回最后一个作为其值。当子表达式都是常量时,它非常没用,所以我假设您的代码只是一个简化的示例。因为它的写法,其实就相当于:

let a = 3;

【讨论】:

    【解决方案2】:

    你遇到的是comma operator

    引用文档

    逗号运算符计算其每个操作数(从左到右)并返回最后一个操作数的值。

    因此,在您的情况下,123 被评估,3 被返回并因此分配给变量 a

    【讨论】:

    • 我愿意接受您的回答作为解决方案,因为它很简单并且引用了文档。但是你也可以写一些关于这种结构的用法(变量初始化中圆括号中的逗号运算符)吗?
    【解决方案3】:

    这不是特定于变量声明的事情。你可以在 JS 代码的任何地方写 (1,2,3) ,它的计算结果总是 3。问题是,JavaScript(像许多其他编程语言一样,例如 C)有逗号运算符,它只返回最后一个元素。表达式 (1,2,3) 基本上看起来就像 JavaScript 中的 (1+2+3),除了使用逗号运算符而不是加法。

    【讨论】:

    • 答案还应该提到逗号运算符在返回最后一个结果之前评估所有表达式
    • 这是真的。我认为这会使答案超负荷(毕竟这不是专家级主题)。
    【解决方案4】:

    这里叫逗号:

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

    在 JavaScript 中使用它是一件非常方便的事情,因为它允许您将多个语句作为箭头函数的单个值运行。

    以下是使用一行代码生成的 10x10 单位矩阵的示例。最后一个逗号值作为值返回。

    const m = new Array(9).fill('000000000').map((v,i)=> (v=[...v],v[i]='1',v.join()));
    console.log(m);

    与阻塞函数相同的上述代码将需要更多行。

    const m = new Array(9).fill('000000000').map((v,i)=> {
       v = [...v];
       v[i] = '1';
       return v.join()
    });
    console.log(m);
    

    【讨论】:

      猜你喜欢
      • 2019-01-20
      • 2023-04-01
      • 2010-09-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-28
      相关资源
      最近更新 更多