在一次编码测试中,我最近遇到了一个问题,要求我找出控制台中将打印的内容。问题如下。我不明白下面的代码是如何理解和执行的。
需要帮助
var arr = ["a" , "b" , "c" , "d"][1,2,3];
console.log(arr);这个arr定义到底是什么意思?
发布于 2015-03-25 15:03:37
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所以使用()包装它们是很重要的。
你什么时候用到它的,操作符?
如果要在需要单个表达式的位置包含多个表达式,则可以使用逗号运算符。此运算符最常见的用法是在for循环中提供多个参数。
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?");
}发布于 2015-03-25 15:06:12
你的例子让我猝不及防。这是另一个例子,它说明了发生了什么。从本质上讲,逗号分隔值列表的计算结果是最后一个值。
if (false, false, true) {
console.log("hello")
}
// --> "hello"https://stackoverflow.com/questions/29249371
复制相似问题