【发布时间】:2016-06-25 08:08:30
【问题描述】:
我正在使用此代码。现在,为了检查,我打印了 typeof arr 并在控制台中显示了“object”。虽然,我在一开始就将 arr 声明为一个数组。它是否已转换为对象? 代码如下:
<script>
function getDomainsOfEmails(text) {
var arr=new Array;
var regex= /[a-z0-9._%+-]+@[a-z0-9.-]+\.[a-z]{2,4}/g;
var matches= text.match(regex);
for(var i=0; i<matches.length; i++){
arr[i]=matches[i].match(/@[a-z0-9.-]+\.[a-z]{2,4}/);
}
for(j=0; j<arr.length; j++){
console.log(arr[j]);
}
console.log(typeof arr);
}
getDomainsOfEmails("vikaskumar2299@gmail.com is not a mail? Is vikas@xmail.com ? No? google.com? sachin@gmail.comsds gmail.com");
</script>
另外,我想知道它是否是一个对象,它的属性和值是什么?
【问题讨论】:
-
是的,数组只是(特殊的)对象。任何不是原始值的值都是对象。
-
第二个问题,read the documentation。
-
在 JS 中,数组只是一个合适的对象。它与许多其他对象的不同之处在于它的构造函数 (
Array()) 并且它的原型默认设置有许多有用的方法。正整数属性指定键,它们的值指定数组的项。还有一个长度属性,它会通过键 getter 和 setter 自动更新(我假设)。您可以采用适当的对象并通过数组子类化将其转换为数组。 stackoverflow.com/a/27986285/4543207
标签: javascript arrays oop object