1.对象
定义:对象是一组无序的键值对,是带有属性和方法的集合
对象就是无序的数据集合
属性是对象相关的值,方法是能够在对象上执行的动作
作用:在单个变量中存储多个值
字面量创建对象:
又叫做JSON对象
var obj3 = {
"name": "xiaofang",// 属性
'age': 21,// 属性
sayHi: function (){// 方法
console.log('hi,大家好');
},
bool: true,
sex: '女',// 属性
friend: {
name: 'xiaohong',
age: 22,
sex: '女',
},
5: 'abc'
//数字可以作为key值但实际上是字符串
}
构造函数创建对象:
var obj2 = new Object();
//括号内无任何参数
访问对象成员
1:对象.属性
2:对象[变量或者字符串]
特殊:当key值为数字时,只能用对象[5]取出;
删除属性:
delete 对象.属性
直接删除即可
遍历对象
for in
从对象中依次取出key值
for (var key in obj3){
// console.log(key);// '5' 'name' 'age' ....
console.log( obj3[key] );// 'abc' 'xiaoming' ...
}
所有对象类型都可以动态的添加属性和方法,简单类型不可以添加属性和方法
2.数组
数组为有序的数据序列,数组属于对象类型
数组创建方式同样为字面量创建和构造函数创建
var arr1 = [];
var arr2 = new Array(1,2,3,4);
//创建含有四个数值的数组
var arr3 = new Array(3);
//创建一个长度为3的数组
数组.length获取数组长度
访问数组内元素,直接用 数组[下标] 取出,数组的下标总是从0开始,且中间不会有断点,如果中间无数据,用empty补齐,当取这个empty数据时,返回undefined;
清空数组的两种方法
arr4 = [];
arr4.length = 0;//推荐
数组的操作方法
a.会改变原数组的API
- 对象.push( 数据,数据):在数组的后面添加(单个或多个)新元素,返回数组新的长度
- 对象.pop() :删除数组的最后一个元素,返回被删除的元素
- 对象.unshift(数据,数据):在数组的前面添加(单个或多个)新元素,返回数组新的长度
- 对象.sort( ) :将数组进行排序,返回数组
- 对象.reverse():将数组倒转,返回数组
- 对象.splice( 开始删除的下标,删除的个数,添加的数据1,添加的数据2):
删除n项:arr.splice(起始位置,n);
增加元素:arr.splice(起始位置,0,添加1,添加2…)
修改元素:arr.splice(起始位置,2,替换1,替换2)
b.不会改变原数组的API
- 对象.slice() :从数组中拷贝一部分,返回新数组;
对象.arr.slice(1,4) 包含索引为1的元素,不包含索引为4的元素(拷贝索引为 1 2 3 的元素) - 对象.concat() :用于合并数组,返回新数组 arr.concat(arr1,arr2…)
- 对象.toString() :将数组转成字符串,返回字符串,只把数组中括号去掉
- 对象.join() :将数组转成字符串,参数为分隔符,返回字符串
数组的遍历
for或者for in
**注:**不要用for in遍历伪数组
var boxs = document.querySelectorAll('.box');
console.log(boxs);//伪数组
for (var index in boxs){
console.log(index);// 0 1 2 3 length...
// 会连这个伪数组的长度和上面的方法一起遍历出来
boxs[index].style.color = 'red';//报错
}