创建数组
数组,即Array。在JavaScript中用的频率还是蛮高的,而且JS的数组相当灵活。
首先我们应该知道,数组是JS内置的众多对象之一,说白了,数组也是对象。既然是对象,那么对象的特征数组也肯定有。
我们先来创建创建数组,创建数组有以下几种方法:
1.new + 构造函数
来看以下代码
var arr1 = new Array();
定义一个变量arr1,然后使用new+Array构造函数创建数组,注意,这样创建出来的是一个空数组,可以用数组的length
属性来查看
console.log(arr1.length); //返回0
上面说了,Array也是对象,那么对象有属性有方法,Array肯定也有属性和方法咯,length就是Array的属性之一,用于获取数组长度
那么我们如何创建有长度或内容的数组呢?看以下代码
var arr2 = new Array(3);
arr2[0] = "tom";
arr2[1] = "halen";
同样使用构造函数创建一个数组,只不过我们这次在括号内定义了数组的长度为3,接下来我们使用变量[下标]的方式来给数组赋值。
这是一种很常见的方式,使用这种方式我们就可以给数组某个下标位置赋值,同时也能获取某个下标对应的值。
console.log(arr2[2]); //返回undefined,因为我们上面并没有给下标位置2进行赋值,所以默认是undefined
同样的,我们可以直接在括号内放入值而不必挨个赋值,
var arr3 = new Array("tom","alen","Jane");
console.log(arr3);// 返回["tom","alen","Jane"];
2.字面量方法
我们日常写JS更多的是使用对象字面量方式来创建对象,如下
var arr4 = ["hello","world",false,124];
看起来是不是简便多了?
检测数组
检测数组的方法有2种,一种就是大家所熟知的instanceof
操作符,例如
var array1 = ["124",124,false];
console.log(array1 instanceof Array);//返回true
instanceof
操作符用来检测引用类型,例如Function,Array等,因为数组也是对象,所以下面的代码同样返回true
.
console.log(array1 instanceof Object); //返回true
另外一种就是ECMAscript5新增加的Array.isArray()
方法,这个方法主要是用来解决数组跨框架判断错误的问题的,因此建议在浏览器支持的情况下优先使用该方法。栗子如下
console.log(Array.isArray(array1)); //返回true
var a = "something";
console.log(Array.isArray(a)); //肯定返回false咯