对象
万事万物皆对象,对象时js的原始类型,任何的数据类型都可以用对象来解释。
对象究竟是什么?
高级数据容器
创建
1.构造函数的创建
var obj=new Object();
console.log(obj)
结果:
2.字面创建对象
字面量:对象长什么样,我们就怎么去创建对象
var obj2={};
console.log(obj2);
结构
映射结构:键值对结构;
对象的属性会对应一个唯一值,这样的一组属性和值,被我们称之为对象之中的一条数据;
注意:1.属性只能是字符串,值可以为任意类型。
2.对象之中可以存储多条数据
3.多条数据之间使用逗号进行隔开
4.对象之中没顺序
例如:
语法:{"name":"abc","age":"180"}
对象抽象
抽象:抽出关键点,对象抽象是为了更好的描述一个事物。
比如:数据:名字:abc,身高:180,职业:讲师
对象的增删改查
查
使用运算符.或者[];
例如:obj.name obj["name"];
而.属性名必须符合变量名才行。如果不符合就只能使用[]当作取出运算符。
增
目标:向对象之中新增一条数据,使用中括号运算符。
var obj={};
//如果取出的属性不存在,js会自动在对象里面新增一个属性。
obj["name"]="abc"
改
如果已经存在数据,那么这次赋值就会覆盖原有数据。
var obj={"name":"abc"}
obj.name="123";
删
关键字:delete
语法:delete 对象[属性名]
var obj={"name":"abc"};
delete obj["name"]
数组
数组:数据的集合;数组里面的数据不代表一个事物,代表的是一批同类事物。
创建数组
1.构造函数创造数组
var arr=new Array();
console.log(arr)
结果:
[]
2.字面量创造数组(推荐)
var arr2=[];
3.数组创建时有一个基本信息,就是长度length,length表示数组里面有多少条数据。可以通过数组名.length来查询。
可以通过new Array(length)来设置数组的初始长度。
4.数组中有多个数据时,用逗号隔开
5**.数组下标**:是数组自动给数据富裕的,从左到右依次增加,从0开始。下标是作为存取数据的基本标记
数组的增删改查
增
和对象一样,但是只能使用[],不能使用点(.)
改
和对象一样,但是只能使用[],不能使用点(.)
删
1.如果使用delete,会破坏数组的下标连续性。
delete arr[4];
console.log(arr)
查
arr[下标]
进阶知识
向数组末尾添加数据
方法1:使用数组[下标]=数据的方式向数组特殊位置添加数据。
数组.length可以得到数组的长度
var arr=["string",1,hello];
arr[arr.length]="向数组末尾添加数据";
console.log(arr)
方法2:数组非常规下标新增数据
如果我们输入的下标是非连续性的下标,数组会自动把连续性补齐
var arr=[];
arr[10]="hello word"
结果如下:
[空属性*10,"hello word"]
数组遍历
遍历:取出数组之中的每一个数据进行使用。
方法1:可以使用循环来表达
起始点:0;
终止点:arr.length-1
var arr=[5,6,7,8,9,0];
for(i=0;i<arr.length;i++){
console.log(arr[i])
}
方法2:for in循环
会自动取出数组/对象的所有属性多次执行,直到取出所有属性
而在for in中声明的变量里面承载的就是属性/下标
for in取出的属性是字符串类型;这个字符串类型和数字类型在遍历中没有区别,如果一定需要数字类型可以使用工具进行转换。
var arr=[5,6,7,8,9,0];
for(var index in arr){
console.log(arr[index])
}
例:使用for in遍历对象:{“name”:“abc”,“age”:18,“height”:180}
var obj={"name":"abc","age":18,"height":180}
for(var index in obj){
console.log(index+":"+obj[index])
}
API
数组本身提供给我们的操作数组,截取数组某些行为的工具。
当需要查看某个不会的API时,使用百度搜索
例如:push mdn
或者查看: Array - JavaScript | MDN (mozilla.org)
字符串API: String - JavaScript | MDN (mozilla.org)
使用方法
数组名.api()