引用类型
一. Object类型
- 到目前为止,引用类型值大多都是object 的实例。可以使用new Object ( )创建一个object实例,也可以使用字面量 { } 创建。通过对象字面量定义对象时,实际上不会调用Object构造函数。
- 访问对象属性,可以使用点表示法,也可以用方括号表示法
var per1 = new Object();
var per2 = { };
console.log(per1.name);
console.log(per2[name]);
二. Array( )类型
- 创建方法
var arr = new Array();
var arr2 = [1,2,3,6];
- length属性:数组的长度
- 检测数组方法:Array.isArray( ) 判断传入参数是否为数组,返回 true 或 false
- 数组的转换方法
- valueOf( ) 返回数组本身
- toString( ) 返回数组中每个值以逗号分隔的拼接而成的字符串形式
- toLocaleString( ) 返回一个数组值以本地分隔符分隔的字符串
- join( ) 返回用指定分隔符分隔每个元素的字符串,不传入参数或传入undefined,则使用逗号作为分隔符
var arr = [1, 3, 5, "li", "si"];
console.log(arr.valueOf());
console.log(arr.toString());
console.log(typeof arr.toString());
console.log(arr.toLocaleString());
console.log(typeof arr.toLocaleString());
console.log(arr.join("-"));
- 栈方法
- push( ) 把传入的参数逐个添加到数组末尾,并返回修改后数组的长度
- pop( ) 移除数组末尾最后一项,返回移除的项
var arr = [1, 3, 5, "li", "si"];
console.log(arr.push(66, "666"));
console.log(arr);
console.log(arr.pop());
console.log(arr);
- 队列方法
- unshift( ) 在数组前端添加任意个项,并返回新数组长度
- shift( ) 移除数组第一项,并返回该项
var arr = [1, 3, 5, "li", "si"];
console.log(arr.unshift(66, "666"));
console.log(arr);
console.log(arr.shift());
console.log(arr);
- 重排序方法
- reverse( ) 反转数组项的顺序,返回颠倒后的数组
- sort( ) 对原始数组进行排序,返回排序后的数组。可以传入一个比较函数,比较函数有两个参数,就是数组的前后元素,根据比较函数的返回值改变两个元素在数组中的顺序
var arr = [1,2,3,4,5];
console.log(arr.reverse());
function compare(a,b){
if(a > b){
return 1;
}else if(a < b){
return -1;
}else{
return 0;
}
}
console.log(arr.sort(compare));
- 位置方法
- indexOf( ) 从数组开头向后查找,返回要查找的项在数组中的位置,找到返回索引,没找到返回 -1
- lastIndexOf( ) 从数组末尾向前查找,返回要查找的项在数组中的位置,找到返回索引,没找到返回 -1
var arr = [1,2,3,4,5,3,7,2];
console.log(arr.indexOf(3));
console.log(arr.indexOf(3,3));
console.log(arr.lastIndexOf(2));
console.log(arr.lastIndexOf(3,2));
- 迭代方法
- every( ) 对数组每一项运行给定函数,如果该函数对数组每一项都返回true,则返回true,否则返回false
- filter( ) 对数组每一项运行给定函数,返回该函数返回true的项组成的数组
- forEach( ) 对数组每一项运行给定函数,没有返回值
- map( ) 对数组每一项运行给定函数,返回每次函数调用的结果组成的数组
- some( ) 对数组每一项运行给定函数,该函数对数组中任一项返回true,则返回true
var arr = [ 1, 2, 5, 6, 2, 3, 4];
var every = arr.every(function(item, index, value){
return item > 3;
});
console.log(every);
var some = arr.some(function(item, index, value){
return item > 3;
});
console.log(some);
var fil = arr.filter(function(item, index, value){
return item > 3;
});
console.log(fil);
var map = arr.map(function(item, index, value){
return item + 3;
});
console.log(map);
var f = arr.forEach(function(item, index, value){
item + index;
});
console.log(f);
- 操作方法
- concat( ) 拼接数组,先创建当前数组一个副本,把接收到的参数值添加到副本末尾,返回新构建的数组
- slice( ) 截取数组,提取指定参数位置之间的元素,返回一个新数组
- splice( 操作数组的位置,删除的元素个数,插入的元素 )
用于删除、替换、插入数组
var arr = ["red", "green", "blue"];
var arr2 = ["pink", "purple"];
var conArr = arr.concat(arr2);
console.log(conArr.slice(1,2));
var removed = arr.splice(0,1);
console.log(arr);
console.log(removed);