markdown 数组,对象和类数组对象
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了markdown 数组,对象和类数组对象相关的知识,希望对你有一定的参考价值。
>数组
定义:有限个类型相同的变量的有序的数据集合,索引为从0开始且自然增长的整数,包含名为length的属性表示数组元素的个数
作用:在单个的变量中存储多个值
>对象
定义:有限个无序的由键->值组成的数据集合,其元素的键名和值都可以自定义
JavaScript 中的所有事物都是对象:字符串、数值、数组、函数...
JavaScript 允许自定义对象
对象只是带有属性和方法的特殊数据类型
>类数组对象
把数组的索引值看成元素的键名,元素看成值,并显示定义length属性
形如:
```
let obj = {
0: 'qzy',
1: 22,
2: false,
length: 3
}
```
>类数组对象可以使用Array对象原生方法进行操作
```
//定义数组和类数组对象
let arr = [2,5,23,5,52];
let obj = {0:4,1:32,2:324,length:3};
//读写操作
console.log(arr[1],obj[1],arr["length"],obj["length"]);//5,32,5,3
arr[0] = 4;
obj[0] = 6;
console.log(arr[0],obj[0]);//4,6
//遍历
for(var i=0;i<arr.length;i++){
console.log(arr[i]);
}
for(var i=0;i<obj.length;i++){
console.log(obj[i]);
}
```
>在浏览器环境中,document.getElementsByTagName()语句返回的就是一个类数组对象
>在function调用中,function代码内的arguments变量(保存传入的参数)是一个类数组对象
>在ECMAScript 5标准中,字符串string是一个只读的类数组对象
```
var s = "History";
console.log(s[3]); //t
console.log(Array.prototype.join.call(s, " ")); //H i s t o r y
```
>可以使用对象来模拟数组,从数据结构上可以把js的数组归为对象
>但两者本身所继承来的方法和一些属性是不同的
>把数组看成是特殊的对象可以方便理解
>Array.prototype.slice.call(arguments)可以将类数组转化为真正的数组
```
Array.prototype.slice = function(start,end){
var result = new Array();
start = start || 0;
end = end || this.length; //this指向调用的对象,当用了call后,能够改变this的指向,也就是指向传进来的对象,这是关键
for(var i = start; i < end; i++){
result.push(this[i]);
}
return result;
}
//Array.prototype.slice.call({0: 1, 1: 2, 2: 3, length: 3})
//[1, 2, 3]
```
以上是关于markdown 数组,对象和类数组对象的主要内容,如果未能解决你的问题,请参考以下文章
Unit02-OOP-对象和类,数组(下)
call(),apply()方法和类数组对象arguments
C++:对象和类|| this指针对象数组类作用域抽象数据类型章末总结
C++:对象和类|| this指针对象数组类作用域抽象数据类型章末总结
js 数组和类数组的区别
markdown 10. Python - 对象和类