数组
数组的认识
/*
谈谈你对数组的认识
什么是数组?
索引从0开始,并且存放相同结构元素的集合叫数组
为什么有数组?(数组解决了什么问题)
相同结构的数据 统一管理(处理)问题
数组有什么特点?
1:由索引和数组元素组成
2:有序的 有长度(长度表示数组有多少个元素,每个都有自己的位置编号)
3:数组元素可以为js任意类型的数据
索引作用:查找元素,长度的作用:记录数组有多少元素 */
数组的API
concat 合并数组
//arr1.concat(arr2) 表示吧数组arr1与数组arr2合并在一起(按顺序arr1在前)
//有返回值,返回的是一个合并之后的新数组
//对原数组没有影响
push 向数组的的尾部添加项
//push 向数组的的尾部添加项(常用于向数组中添加元素)---arr3.push(5,6,7,8,9)
//有返回值.返回的是添加项之后的数组的长度
//会改变原数组,如果想同时添加的多个项,用逗号隔开即可
pop删除数组中的最后一个
//pop删除数组中的最后一个 ---arr3.pop()
//有返回值,返回的是删除的项
//会改变原数组
unshift 向数组的头部添加
//unshift 向数组的头部添加 ----arr3.unshift(10,11,12)
//有返回值,返回的是数组的长度
//会改变原数组
shift 删除数组中的第一个
//shift 删除数组中的第一个----arr3.shift()
//有返回值,返回的是删除的项
//改变原数组
toString();将数组转化为字符串
//将数组转化为字符串-----可以arr6.toString()也可以String(arr6)都表示把arr6转化为字符串
//返回的是转化的字符串
//不会改变原数组
join() 将数组转化为字符串
//join() 将数组转化为字符串---arr6.join()
//返回的是转化的字符串
//不会改变原数组
//如果join()括号中不添加值.默认就是英文逗号隔开,原数组不变
//如果join()括号中添加值(值是分隔符),分隔符添加之后,每两项之间就会使用分隔符给隔开
reverse,反转数组
//reverse,反转数组---arr6.reverse()
//返回的是反转之后的数组
//改变原数组
indexOf() 获取首个指定元素在数组中的索引位置
//indexOf() 获取首个指定元素在数组中的索引位置:如果指定的值在数组中不存在,则返回-1;如果存在,则返回该元素第一次出现的索引值
//lastIndexOf; 从后往前去查找首个元素出现的位置(返回的值仍然是正常的从左到右的索引值);
slice (start,end)截取
//返回值是截取先来的数组
//对原数组是没有影响的
//arr1.slice(0,10)
//start 开始截取的索引值,end 结束截取的索引值 不包括
//只写一个值的话,就是从该索引开始往后截取,直到最后;
splice(start,count,newItem)
//删除数组中的某些项
//返回的是删除的数据
//会改变原数组
/*
start 开始删除的索引位置
count 要删除几个,非必填,如果不填,删除后面所有,如果是0,就不删除
newItem 从第三个参数往后,从开始删除的位置,添加新的项
*/
delete. 删除某个,可以删除,但是位置会保留,数组的长度不会改变
//delete arr[0] 表示删除arr数组中的第一个
对象
对象的认识
//对象:用于表示不同意义的数据
//对象:key-value 键值对
//key 键 value 值
//key 都是字符串 相当于变量
//value 任意类型的js数据
var Obj={name:jack,age:23}
//name和age都是key,jack和23都是value
遍历对象的方法
//1.通过获取对象的key和value的数组间接实现遍历数组
//读取对象下所有的key
//Object.keys()
//作用:获取某个对象中所有的key值,并返回数组
//实参:待读取对象
//返回值:key 组成的数组
var keys = Object.keys(obj)
console.log(keys)
//读取对象下所有的value
//Object.values()
//作用:读取某对象中所有的value值 返回数组
//实参:待读取对象
//返回:value组成的数组
var values=Object.values(obj)
console.log(values)
//2.通过for in 直接遍历对象
// 循环读取所有key
// var keyArr = []
// var len = keyArr.length;
// for(var k in obj){
// console.log(k);
// keyArr[len] = k;
// len++
// }
// console.log(keyArr);
函数
函数的认识
//什么是函数?
//---->带有一定功能的,并且可以按需重复执行的
//为什么有函数?(函数解决哪些问题?)
//---->为了解决按需执行的代码并且有规律的代码片段,重复编写,可维护性低的问题.有两种(1:语言自带的,2:自己定义的)
//函数有哪些内容?
//---->函数有形参,实参,代码块
// 形参解决了什么问题?
//形参可以有多个,作用是接受实参保存实参数据,相当于变量|实参是具体的数据,可以为js任意类型,在函数调用时传入
// return 解决了什么问题?
//return 作用:1.将函数内部运算结果,输出函数外部.2.结束函数内部的语句(return下面的代码不再执行)
封装函数
//封装函数思路:
//1 确定目标:确定函数的作用是什么?
//2 定形参:找到完成函数功能哪些是可变化的量
//3 定结果:是否需要将运算结果告诉外界