js中的圆括号中的变量值是什么意思? 例如,
let a = (1,2,3);
这是什么意思,为什么console.log(a)输出为3?
在变量初始化中的圆括号中使用逗号运算符是什么?
答案 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;
第二个和第三个声明显然是错误的,因为2
和3
不是变量名。
括号表示整个表达式1, 2, 3
用于初始化一个变量。
表达式1, 2, 3
使用Comma operator,它执行其每个子表达式并返回最后一个作为其值。当子表达式都是常量时,它几乎没有用,所以我认为您的代码只是一个简化的示例。因为它的编写方式,所以实际上只相当于:
let a = 3;
答案 1 :(得分:3)
答案 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);