首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >数组行为混乱

数组行为混乱
EN

Stack Overflow用户
提问于 2015-03-25 15:00:46
回答 2查看 408关注 0票数 8

在一次编码测试中,我最近遇到了一个问题,要求我找出控制台中将打印的内容。问题如下。我不明白下面的代码是如何理解和执行的。

需要帮助

代码语言:javascript
复制
var arr = ["a" , "b" , "c" , "d"][1,2,3];
console.log(arr);

这个arr定义到底是什么意思?

EN

回答 2

Stack Overflow用户

发布于 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

代码语言:javascript
复制
Update:

让我们看看comma运算符的更多要点:

:

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

所以,这意味着:

代码语言:javascript
复制
var a = (10, 18);
a; //18

另请注意,在为变量赋值时,将它们放在括号中是很重要的。

如果您尝试执行以下操作:

代码语言:javascript
复制
var a = 1,2,3;
a; // will return 1

所以使用()包装它们是很重要的。

你什么时候用到它的,操作符?

如果要在需要单个表达式的位置包含多个表达式,则可以使用逗号运算符。此运算符最常见的用法是在for循环中提供多个参数。

代码语言:javascript
复制
for (var i = 0, j = 9; i <= 9; i++, j--)

现在您已经了解了comma运算符,让我们再看几个例子来测试我们的理解:

代码语言:javascript
复制
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?");
    }
票数 13
EN

Stack Overflow用户

发布于 2015-03-25 15:06:12

你的例子让我猝不及防。这是另一个例子,它说明了发生了什么。从本质上讲,逗号分隔值列表的计算结果是最后一个值。

代码语言:javascript
复制
if (false, false, true) {
    console.log("hello")
} 
// --> "hello"
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29249371

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档