一、数组数据类型
var arr = [1,2,3,4,5,6];
特征:
1.数组无名有值
2.可根据下标记录对应数据,通过顺序进行记录
3.如果需要找到某个数据,必须遍历整个数组
4.数组为紧密结构,导致插入、删除、添加元素时间长
5.数组的元素是可以重复,元素没有唯一性
6.数组有关联关系,可以根据自身前后找到上下的数据
7.数组有长度,可以知道当前遍历的地方
二、对象数据类型
var obj = {a:1,b:2,c:3};
特征:
1.key:value键值对,必须有名有值
2.可以直接根据键名获取到对应的值,不需要进行遍历熟读快
3.键名具有唯一性,如果遇到相同的键名则将会被覆盖,键值不具备唯一性
4.如果查找值,需要进行遍历整个对象,时间长
5.插入,删除,添加元素快,结构上为一个松散型解构,操作上没有关联关系
6.不具备上下数据
7.对象没有长度,无法获知到遍历的位置
三、Set数据类型
var a = new Set([1, 2, 3, 4, 5, 2, 4, 5]);
特征:
1.列表容器,没有下标
2.列表中数据之间没有关联性,没有顺序性
3.判断元素通过has()方法不需要进行遍历,速度快
4.遍历需要通过for of进行获取
5.数组的方法forEach可以进行使用遍历值
for (let value of a) {
// 列表中的所有值
console.log(value);
}
//forEach比遍历
//使用forEach有三个参数
//key对应列表中的值与value相等
//self是自己本身
a.forEach(function(key,value,self){
console.log(key,value,a);
})
四、Map数据类型
let b=new Map();
b.set("name","xietian");
b.set("age",30);
b.set("sex","man");
特征:
1.具有长度的键值对数据类型
2.可以根据键查找到属性值,通过get方法
3.通过has方法只能判断是否有此键名,不能判断键值
4.遍历通过for of
5.数组的forEach也可使用,通过keys 和 values方法分别可以遍历出对应的键和值
//遍历属性名
for(var prop of b.keys()){
console.log(prop);
}
//遍历属性值
for(var value of b.values()){
console.log(value);
}
//forEach遍历
b.forEach(function(prop,value){
console.log(prop,value);
});