javascript 中的 Array类型
ECMAScript的数组 与 其他语言不同的是,ECMAScript 的数组的每一项可以保存任何类型的数据
。而且它的大小是可以动态调整
的,可以随着数据的添加自动增长,以容纳新增数据
1.创建数组
1).使用 Array 构造函数
var name1 = new Array(2); // 创建一个length为2的数组
var name2 = new Array('xiaowu', 'xiaoming'); // 创建一个有字符串'xiaowu', 'xiaoming'的数组
在使用 Array构造函数时也可以省略 new 操作符。
2).使用数组字面量(推荐)
var colors = ['red', 'blue'];
2.length属性
数组的项数保存在其length属性中,他不是只读的,返回值是一个number
,当将其 length属性通过设置这个属性,可以从数组的末尾移除项或向数组添加新项。
var colors = ['red', 'blue'];
console.log(colors.length); // 2
colors.length = 3;
console.log(colors[2]); // undefined
colors.length = 1;
console.log(colors); // ['red']
colors[colors.length] = 'green';
colors[colors.length] = 'pink';
console.log(colors); // ['red', 'green', 'pink']
3.检测数组
1). instanceof
instanceof
只适合用于只有一个全局执行环境
当网页中包含多个框架,那么实际上就存在两个以上不同的全局执行环境了,从而存在两个以上不同版本的Array构造函数。
var colors = ['red', 'blue'];
// colors instanceof Array 返回一个 boolean值
if (colors instanceof Array) {
console.log('是数组'); }
2). Array.isArray()
Array.isArray()
存在浏览器兼容性问题,目前支持该方法的有 IE9+、Firefox4+、Safari5+、Opera10.5+和Chrome。
var colors = ['red', 'blue'];
if (Array.isArray(colors)) {
console.log('是数组'); }
3). 手动创建一个安全的数组类型检测
该方法不存在浏览器兼容问题,返回的是一个 boolean值
function isArray(value) {
return Object.prototype.toString.call(value) === '[object Array]';
}
4.转换方法
1).valueOf()、toString()
valueOf()
返回的是数组本身
toString()
返回由数组中每个值的字符串形式拼接而成的一个逗号分隔的字符串
var colors = ['red', 'green', 'yellow'];
console.log(colors.valueOf()); // ["red", "green", "yellow"]
console.log(colors.toString()); // 'red, green, yellow'
var nums = [1, 2, 4];
console.log(nums.valueOf