JS中的数组:
1.数组的概念:
数组是在内存中连续存储的多个有序元素的结构,元素的顺序称为下标,通过下标查找对应元素
2.数组的声明:
①通过字面量声明var arr1 = [,,,,]
JS中同一数组可以储存多种不同的数据类型(但,同一数组一般只用于存放同种数据类型)
例如var arr1 = [1,"2",true,{"name":"啦啦啦"},[1,2]];
②通过new关键字声明:var arr2 = new Array(参数);
>>>参数可以为:
空:表示声明一个没有长度的数组
数组length:声明一个指定长度的数组,但是数组的长度可变可追加
数组默认的N个值:new Array(1,"2",true);相当于[1,"2",true];
3.数组中元素的读写/增删:
①读写:通过下标来访问元素,例如arr[2]
②增删:delete arr[n];删除数组的第n+1个值,但数组长度不变,对应位置值为Underfined
arr.push(值); 数组最后增加一个值,相当于arr3[arr3.length] = 7
arr.unshift(值); 数组的第0位插入一个值,其余位数顺延
arr.pop();删除数组最后一位,与delete值不同的是,pop执行后数组长度也会减少一个;相当于arr3.length-=1;
arr.shift();删除数组第0位,长度也会减一
4.数组中其他常用方法:
①join("分隔符");将数组用指定分隔符分隔。连接为字符串。参数为空时,默认用逗号分隔;
②concat();将数组与多个数组的值连接为新的数组(原数组不被改变)
③push():数组最后增加一个数;
unshift():数组开始增加一个数【返回数组新的长度】
pop():删除数组最后一个;
shift():删除数组第一个【返回被删除的值】
④reverse():数组翻转,逆序排列【原数组被改变】
⑤slice(begin,end):[原数组不会被改变]截取数组中的某一部分成为新数组。
⑥sort(function):[原数组会被改变]对数组进行排序;
⑦indexOf(value,index):返回数组中第一个value值对应的索引位置,若未找到,返回-1
lastIndexOf(value,index):返回最后一个value值对应的下标位置,若未找到,返回-1
5.引用数据类型:(数组/对象)赋值时,是将原数据的地址赋给新变量。两个变量,实际上操作的是同一份数据,所以修改其中一个变量另一个跟着变化。
基本数据类型:赋值时,是将原变量的值,赋值给新的变量。两个变量,属于不同的内存空间,修改其中一个,互不干扰。
【JS中的内置对象分为以下几类】:
boolean类
Number类
字符串string
date类
【自定义对象】
1.基本概念:
①对象:对象是包含一系列无序属性和方法的集合
②键值对:对象中的数据是以键值对的形式存在的,以键取值
③属性:描述对象特征的一系列变量、【对象中的变量】
④方法:描述对象行为的一系列方法、【对象中的函数】
2.对象的声明:
①字面量声明: var obj = {
key1:value1, // 属性
key2:value2,
func:function(){} // 方法
}
对象中的key,可以是任何数据类型。但一般用普通变量名(不需要"")即可
对象中的value,可以是任何数据类型。但字符串必须用""包裹
多组键值对之间用英文逗号","分隔,键值对的键与值之间用英文冒号":"分隔
②new关键字声明
var lisi = new Object();
lisi.name = "李四";
lisi.say = function(){
console.log("我是:"+this.name);
}
3.对象中属性和方法的读写:
① .运算符: 对象内部:this.属性名 this.方法名()
对象外部:对象名.属性名 对象名.方法名()
② 通过["key"]调用,对象名["属性名"] 对象名["方法名"]()
如果key中包含特殊字符,则无法使用第①种方式,必须使用第②种
对象中,直接写变量名,默认为调用全局变量。如需调用对象自身属性,则需要通过this关键字
③ 删除对象的属性方法:delete 对象名.属性名(方法名)