在编码测试中,我最近遇到一个问题,要求我找出将在控制台中打印的内容。问题如下。我不明白下面的代码将如何被理解和执行。
需要帮助
var arr = ["a" , "b" , "c" , "d"][1,2,3];
console.log(arr);
这个定义甚至意味着什么?
答案 0 :(得分:13)
JS中的数组是一维的。
所以var arr = ["a" , "b" , "c" , "d"][1,2,3];
此处[1,2,3]
代表索引。
逗号是前面最少的运算符,因此[1,2,3]
会返回3
(即最右边的元素)。
因此
结果会返回3
d
的值
Update:
让我们看一下comma
运营商的更多要点:
逗号运算符计算每个操作数(从左到右) 并返回最后一个操作数的值。
所以,这意味着:
var a = (10, 18);
a; //18
另请注意,在分配给变量时,在括号内提及它们至关重要。
如果你尝试这样的话:
var a = 1,2,3;
a; // will return 1
因此,使用()
包装它们非常重要。
您何时可以使用,
运营商?
如果要包含多个,可以使用逗号运算符 需要单个表达式的位置中的表达式。最多 该运算符的常见用法是在a中提供多个参数 for loop。
for (var i = 0, j = 9; i <= 9; i++, j--)
既然您已了解comma
运算符,那么让我们看一些例子来测试我们的理解:
1. var a = (1,3)/(2,1);
a // what will be the o/p
2. var a = ["Stack", "OverFlow","is","Awesome"][1,3,2][2,0]
a // What will be the o/p
3. var a = (true,0,1), b, c;
if(b,c,a) {
console.log("Will it execute?");
}
答案 1 :(得分:5)
你的例子让我措手不及。这是另一个说明正在发生的事情的例子。基本上,逗号分隔值列表的计算结果为最后一个值。
if (false, false, true) {
console.log("hello")
}
// --> "hello"