在编码测试中,我最近遇到一个问题,要求我找出将在控制台中打印的内容.问题如下.我不明白下面的代码将如何被理解和执行.
需要帮忙
var arr = ["a" , "b" , "c" , "d"][1,2,3];
console.log(arr);
Run Code Online (Sandbox Code Playgroud)
这个定义甚至意味着什么?
moh*_*ias 13
JS中的数组是一维的.
所以 var arr = ["a" , "b" , "c" , "d"][1,2,3];
这里[1,2,3]代表索引.
逗号是前面最少的运算符,所以[1,2,3]会返回你3(即总是最右边的元素).
因此
结果将返回索引值3这d
Update:
Run Code Online (Sandbox Code Playgroud)
让我们看一下comma运营商的更多要点:
逗号运算符计算其每个操作数(从左到右)并返回最后一个操作数的值.
所以,这意味着:
var a = (10, 18);
a; //18
Run Code Online (Sandbox Code Playgroud)
另请注意,在分配给变量时,必须在括号内提及它们.
如果你尝试这样的事情:
var a = 1,2,3;
a; // will return 1
Run Code Online (Sandbox Code Playgroud)
因此,使用它们进行包装非常重要().
你何时会使用它,?
如果要在需要单个表达式的位置包含多个表达式,可以使用逗号运算符.此运算符的最常见用法是在for循环中提供多个参数.
for (var i = 0, j = 9; i <= 9; i++, j--)
Run Code Online (Sandbox Code Playgroud)
既然您已经了解了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?");
}
Run Code Online (Sandbox Code Playgroud)
你的例子让我措手不及.这是另一个说明正在发生的事情的例子.基本上,逗号分隔值列表的计算结果为最后一个值.
if (false, false, true) {
console.log("hello")
}
// --> "hello"
Run Code Online (Sandbox Code Playgroud)