javascript - object[0] 是 JavaScript 中对象的默认键吗?

标签 javascript

这是一个小的 JavaScript 片段:

  var re_words = /\w+/g;

  var words;
  while (words = re_words.exec(' here are a few (sic!) words ')) {
     alert(words);
  }

循环会提醒在输入字符串中找到的单词,这正是我所期望的,因为所有 JavaScript 教程都这么告诉我。

现在,typeof(words) 结果为object

因此,我希望 alert(words) 能够给我 object

如果我检查words中的元素,我发现它们是0、“index”和“input”。元素words[0]与words提醒的元素相同。

所以,问题是:元素 0 是否是 JavaScript 中对象的默认索引,如果定义了该对象,则返回该索引。

或者以不同的方式问:为什么 alert(words)alert(words[0]) 具有相同的效果?我希望alert(words)给出一个“对象”。

最佳答案

result of executing a regexp是一个数组,它是一种特殊的对象。该数组还有两个属性:索引和输入。 Words[0] 包含匹配的字符。在数组上调用 .toString()(由 alert() 隐式完成)会用逗号连接数组的元素(在调用 .toString( ) 每一个)。在本例中,由于只有一个元素,因此逗号是多余的,因此对数组调用 .toString() 的结果与数组中的第一个元素相同。

(不确定您使用的是什么浏览器;在 Firefox 中,alert(words) 给出 'here',然后 'are' ,依此类推,直到最后给出字符串 'words'。)

关于javascript - object[0] 是 JavaScript 中对象的默认键吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1802763/

相关文章:

javascript - 使用 LESS 递归设置同名内部类的样式?

javascript - 图像名称在多个图像选择问题中重复

javascript - AJAX 到 asmx (VB) web 方法 - 带参数的 GET

javascript - 实时网站访问者跟踪系统

javascript - HTML 和 Javascript - 使用循环创建按钮不会 "individualize".onclick = {}

javascript - 如何在不返回 false 的情况下修复 div 中的返回 Ajax

javascript - 如何防止 jointjs 单元格溢出纸张?

javascript - UIWebView - 加载带有链接资源的本地 .html 文件

javascript - CSS 过渡没有传递随机数

javascript - ajax - 验证数据库中是否已存在行