Javascript 以下变量是什么?
当我在控制台中运行命令Javascript 以下变量是什么?,javascript,Javascript,当我在控制台中运行命令x='test'.match(/(t(e)/)时,我得到以下输出 [“te”,“e”,索引:0,输入:“test”] 然后运行以下命令: x.length 输出:2 Object.keys(x).length 输出:4 这里发生了什么?变量似乎是一个数组文字,在索引2和3处有对象文字。如果这是一个nooby问题,很抱歉,但是当我尝试这样做时 x=[“te”,“e”,索引:0,输入:“test”] 我明白了 Uncaught SyntaxError:意外标记:这是预期的,但我
x='test'.match(/(t(e)/)
时,我得到以下输出
[“te”,“e”,索引:0,输入:“test”]
然后运行以下命令:
x.length
输出:2
Object.keys(x).length
输出:4
这里发生了什么?变量似乎是一个数组文字,在索引2和3处有对象文字。如果这是一个nooby问题,很抱歉,但是当我尝试这样做时
x=[“te”,“e”,索引:0,输入:“test”]
我明白了
Uncaught SyntaxError:意外标记:
这是预期的,但我不知道函数如何将x
设置为该值。请给我一些帮助
是[“te”,“e”,索引:0,输入:“test”]
函数返回的对象的字符串化版本匹配
未“设置为该值”。x
设置为描述正则表达式匹配项的对象。执行x
时,console.log(x)
在引擎盖下调用,并返回x.toString()
。为了方便起见,这只是一种文本表示。底层结构更复杂[“te”,“e”,索引:0,输入:“test”]
已与您的正则表达式匹配“te”
是此匹配的捕获(因为您的regexp中有括号)“e”
描述找到的匹配/捕获数x.length
为4。您有2个捕获(2个键),其中添加了2个键,用于Object.keys(x).length
索引和
输入
[“te”,“e”]
,它的长度为2,似乎是您想要得到的,所以您可以使用x=[“te”,“e”]
“数组是列表状的对象,其原型具有执行遍历和变异操作的方法。”
当您在这里访问“索引”或“输入”时,它是一个对象的属性,就像其他属性一样
试试这个:
a = new Array()
a.hello = 'world'
console.log(a.hello)
console.log(Object.keys(a))
您将获得以下输出:
'world'
['hello']
数组是对象,索引是属性名,但不显示在数组文字中。控制台混合了数组和对象文字语法(如果用作代码,则无效) 等效的对象文字应为:
{
0: "te",
1: "e",
index: 0,
input: "test"
};
但对象文字构造普通对象,而不是数组对象。可以使用以下方法构造等效数组:
var x = ['te', 'e'];
x.index = 0;
x.input = 'test';
控制台依赖于实现,它显示的内容不一定是有效的对象或数组文字。它只是试图提供帮助。有关更多帮助,请参阅。不是
x.toString
,而是proprietaryStringRepresentation(x)