当前位置: 首页 > 面试题库 >

在测试不包含0的数组中是否存在0时,为什么javascript的“ in”运算符返回true?

艾哲
2023-03-14
问题内容

当测试数组中是否存在“ 0”时,即使数组似乎不包含“ 0”,为什么Javascript中的“ in”运算符也返回true?

例如,这返回true,并且很有意义:

var x = [1,2];
1 in x; // true

这返回false,并且很有意义:

var x = [1,2];
3 in x; // false

但是,这返回true,我不明白为什么:

var x = [1,2];
0 in x;

问题答案:

它引用索引或键,而不是值。 0并且1是该阵列的有效指标。还有一些有效的键,包括"length""toSource"。尝试2 in x。这将是错误的(因为JavaScript数组的索引为0)。

请参阅MDN文档。



 类似资料:
  • 问题内容: 我有三张桌子: 文字:行中的文字 trigram:所有文字行的trigram text_trigram:文本行包含的三字母组,中间表 当我执行此命令时: 结果出来了,却没有我想要的结果: 这是我除了拥有的东西: 此外,我想执行以下操作: 有可能的?还是使用运算符是错误的? 问题答案: 我认为这里的困惑是您假设的值为null ,但实际上 没有匹配的行 。考虑以下简化版本: 如果没有带有的

  • 问题内容: 在Python 2.6中查看Queue.py时,我发现这个结构有点奇怪: 如果maxsize为0,则队列永远不会满。 我的问题是在这种情况下如何运作?如何0 < 0 == 0被认为是错误的? 问题答案: 我相信Python对关系运算符的序列有特殊的处理方式,以使范围比较易于表达。能说比说好得多。 这些称为链接比较。这是他们文档的链接。 在您谈论的其他情况下,括号会强制在一个关系运算符之

  • 问题内容: 我刚读 ISO / IEC 9899:201x委员会草案-2011年4月12日 在其中我发现5.1.2.2.3程序终止 这表示如果您未在中指定任何return语句,并且如果程序成功运行,则main的右大括号}将返回0。 但是在下面的代码中,我没有指定任何return语句,但是它没有返回0 编译 问题答案: 该规则是在C标准的1999版本中添加的。在C90中,返回的状态未定义。 您可以通

  • 我想检查一个数字是否是正方形,一个数字是否是三角形。问题发生在sqrt(num)上,它为我测试的所有数字返回0 我正在使用一个在线编译器,尝试了几个编译器,所以这不是一个编译问题。尝试将num声明为double和int,结果相同 我是Java新手,但对编程并不陌生,我在网上搜索了几次,检查了我的代码,一切看起来都很好,在添加用于检查三角数的变量之前,它甚至按预期工作,但在声明变量checkTri和

  • 问题内容: 我有以下代码。应该返回表的最后一行的mysqli_insert_id()(在本例中为“ $ last_row”)始终返回0。为什么会这样呢? 问题答案: 并 没有 返回表的最后一排的ID。从文档中,它: …返回由查询产生的ID,该查询是对具有具有AUTO_INCREMENT属性的列的表进行的。如果最后一个查询不是or 语句,或者如果修改后的表没有带有属性的列,则此函数 将返回零 。 (

  • 我知道(-0==0)是真的。我很想知道为什么-0 当我在stackoverflow执行上下文中运行这段代码时,它返回。 但是当我在浏览器控制台中运行相同的代码时,它返回。那是为什么呢?我试图在谷歌上搜索它,但没有找到任何有用的东西。这个问题可能不会给某个人的实际例子增加价值,我想了解JS是如何计算它的。