js引用类型对象和数组

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
  1. 对象.push( 数据,数据):在数组的后面添加(单个或多个)新元素,返回数组新的长度
  2. 对象.pop() :删除数组的最后一个元素,返回被删除的元素
  3. 对象.unshift(数据,数据):在数组的前面添加(单个或多个)新元素,返回数组新的长度
  4. 对象.sort( ) :将数组进行排序,返回数组
  5. 对象.reverse():将数组倒转,返回数组
  6. 对象.splice( 开始删除的下标,删除的个数,添加的数据1,添加的数据2):
    删除n项:arr.splice(起始位置,n);
    增加元素:arr.splice(起始位置,0,添加1,添加2…)
    修改元素:arr.splice(起始位置,2,替换1,替换2)
b.不会改变原数组的API
  1. 对象.slice() :从数组中拷贝一部分,返回新数组;
    对象.arr.slice(1,4) 包含索引为1的元素,不包含索引为4的元素(拷贝索引为 1 2 3 的元素)
  2. 对象.concat() :用于合并数组,返回新数组 arr.concat(arr1,arr2…)
  3. 对象.toString() :将数组转成字符串,返回字符串,只把数组中括号去掉
  4. 对象.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';//报错
}
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值