括号内的变量值是什么意思?

时间:2019-03-10 13:05:26

标签: javascript

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

let a = (1,2,3);

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

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

4 个答案:

答案 0 :(得分:4)

括号是分组所必需的。在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;

答案 1 :(得分:3)

您遇到的是comma operator

引用文档

  

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

因此,在您的情况下,对123进行求值,并返回3并因此将其分配给变量a

答案 2 :(得分:0)

这不是变量声明特定的东西。您可以在JS代码中的任何位置编写(1,2,3),并且它的值始终为3。问题是,JavaScript(像许多其他编程语言,例如C)具有逗号运算符,该运算符仅返回最后一个元素。表达式(1,2,3)基本上类似于JavaScript的(1+2+3),只是应用了逗号运算符而不是加法运算符。

答案 3 :(得分:0)

它称为逗号运算符:

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);