1.数组
就是一组数据的集合
1.1字面量创建数组
var arr= [ 元素1, 元素2 ... ]
1.2访问数组元素
数组[下标]
下标:自动为每个元素添加的编号,从开始的整数
如果访问不存在的元素,则结果为undefined
1.3数组的长度
数组.length 获取数组元素的数量
在数组末尾添加元素 数组[ 数组.length ] = 值
1.4内置构造函数创建数组
var arr=new Array(元素1,元素2,...)
var arr= new Array(4) //创建数组,初始化长度为4,可以添加更多个元素
1.5数组的分类
索引数组:以0及以上的整数作为下标
关联数组:以字符串作为下标,只能单独的添加元素
关联数组不能使用length属性获取数组的长度
1.6遍历数组元素
依次访问数组中的每个元素
//for-in
for(var k in 数组){
//k 代表下标
//数组[k] 下标对应的元素
}
//循环 —— 推荐用法
for(var i=0;i < 数组的长度;i++){
//i 代表下标
//数组[i] 下标对应的元素
}
1.7API
应用程序编程接口:JS中预定义的函数或者对象下的方法
toString()
返回一个字符串,表示指定的数组及其元素。
const array1 = [1, 2, 'a', '1a'];
console.log(array1.toString());
// expected output: "1,2,a,1a"
join()
将一个数组(或一个类数组对象)的所有元素连接成一个字符串并返回这个字符串。如果数组只有一个项目,那么将返回该项目而不使用分隔符。
const elements = ['Fire', 'Air', 'Water'];
console.log(elements.join());
// expected output: "Fire,Air,Water"
console.log(elements.join(''));
// expected output: "FireAirWater"
console.log(elements.join('-'));
// expected output: "Fire-Air-Water"
concat()
用于合并两个或多个数组。此方法不会更改现有数组,而是返回一个新数组。
const array1 = ['a', 'b', 'c'];
const array2 = ['d', 'e', 'f'];
const array3 = array1.concat(array2);
console.log(array3);
// expected output: Array ["a", "b", "c", "d", "e", "f"]
reverse()
将数组中元素的位置颠倒,并返回该数组。数组的第一个元素会变成最后一个,数组的最后一个元素变成第一个。该方法会改变原数组。
const array1 = ['one', 'two', 'three'];
console.log('array1:', array1);
// expected output: "array1:" Array ["one", "two", "three"]
const reversed = array1.reverse();
console.log('reversed:', reversed);
// expected output: "reversed:" Array ["three", "two", "one"]
// Careful: reverse is destructive -- it changes the original array.
console.log('array1:', array1);
// expected output: "array1:" Array ["three", "two", "one"]
sort()
用原地算法对数组的元素进行排序,并返回数组。默认排序顺序是在将元素转换为字符串,然后比较它们的 UTF-16 代码单元值序列时构建的
const months = ['March', 'Jan', 'Feb', 'Dec'];
months.sort();
console.log(months);
// expected output: Array ["Dec", "Feb", "Jan", "March"]
const array1 = [1, 30, 4, 21, 100000];
array1.sort();
console.log(array1);
// expected output: Array [1, 100000, 21, 30, 4]
array1.sort( function(a,b){
return a-b;//按照数字从小到大排序
//return b-a; //按照数字从大到小排序
} )
console.log(array1);
//expected output: Array [1, 4, 21, 30, 100000]
slice(start,end)
截取数组元素,start开始的下标,end结束的下标,不包含end,如果end为空截取到最后,如果下标是负数表示倒数;返回截取到的元素,格式为数组。
splice(start,count,v1,v2)
删除数组元素,start开始的下标,count删除的数量,count为空删除到最后,下标为负数表示倒数,v1,v2表示删除后补充的元素,返回删除后的元素,格式为数组;原数组会发生变化。
push()
在数组的末尾添加一个或者多个元素,返回数组的长度,原数组会发生变化
pop()
删除数组末尾的一个元素,返回删除的元素,原数组发生变化
unshirt()
在数组的开头添加一个或者多个元素,返回数组的长度,原数组会发生变化
shift()
删除数组开头的一个元素,返回删除的元素,原数组发生变化
indexOf()
判断数组中是否含有某个元素,存在返回下标,如果不存在返回-1
更多查看MDN数组
2.二维数组
对数据进行二次分类
var arr= [ [ ], [ ], [ ] ]
访问
数组[下标][下标]
3.字符串对象
包装对象:目的是为了让原始类型的数据像引用类型的数据一样,具有属性和方法,一共三种包装对象,字符串对象,数值对象,布尔对象
new String() 将数据强制转换为字符串,返回对象
String() 将数据强制转换为字符串,返回字符串
(1)转义字符
转换字符本身的意义
' 将具有特殊意义单引号转为普通引号
\n 将普通的字符n转义为换行符
\t 将普通的字符t转义为制表符(tab键效果)
(2)API
length 获取字符串的长度
charAt() 获取下标对应的字符,也可以使用数组格式 字符串[下标]
indexOf() 查找字符串,返回满足条件的第一个的下标,找不到返回-1
lastIndexOf() 查找字符串,返回满足条件的最后一个的下标,找不到返回-1
toUpperCase() 将英文字母转大写
toLowerCase() 将英文字母转小写
slice(start, end) 截取字符串,start开始的下标,end结束的下标,end为空截取到最后,下标为负数表示倒数,返回截取到的字符串
substr(start, count) 截取字符串,start开始的下标,count截取的长度,count为空截取到最后,下标为负数表示倒数,返回截取到的字符串
split(str) 将字符串转为数组,按照指定的字符str分割
4.Math对象
不需要创建,可以直接使用API
PI 获取圆周率
abs() 求绝对值
ceil() 向上取整
floor() 向下取整
round() 四舍五入取整
max() 获取一组数字最大值
min() 获取一组数字最小值
pow(x,y) 计算x的y次方
random() 获取随机,范围 0~1 >=0 <1
5.Date对象
用于对日期时间的存储和计算
(1)创建
new Date('2021/6/17 10:20:30')
new Date(2021,5,17,10,20,30) 月份范围011 代表112月
new Date(1683036000000) 存储距离计算机元年的毫秒数对应的日期时间
new Date() 存储当前操作系统的时间
(2)获取
getFullYear/getMonth/getDate
月份范围011 对应112月
getHours/getMinutes/getSeconds/getMilliseconds(毫秒)
getTime 获取距离计算机元年毫秒数
getDay 获取星期 范围06 对应星期日星期六
(3)转为本地字符串格式
存在兼容性问题,用于测试
toLocaleString() 获取完整的
toLocaleDateString() 获取日期部分
toLocaleTimeString() 获取时间部分
(4)修改
setFullYear()/setMonth()/setDate()
setHours()/setMinutes()/setSeconds()/setMilliseconds()
setTime() 设置距离计算机元年毫秒会,产生具体的日期时间
练习:创建对象保存当前操作系统的日期时间,修改为3天后,修改为7个小时前。
6.Number对象
new Number() 将数据转为数值型,返回对象
Number() 将数据转为数值型,返回数值
toFixed(n) 强制保留小数点后n位
toString(n) 强制转为字符串,可以通过n设置进制
7.Boolean对象
new Boolean() 将数据转为布尔型,返回对象
Boolean() 将数据转为布尔型,返回布尔型数据
8.错误处理
(1)常见的错误
语法错误(SyntaxError):出现了中文符号,缺少括号等
引用错误(ReferenceError):使用了未声明的变量
类型错误(TypeError):函数或者对象下的方法找不到
自定义错误:程序员自己指定的错误
throw 错误内容
(2)错误处理
try{
//尝试执行,可能出现错误
}catch(err){
//捕获错误,一旦try中出现错误才会执行
//将错误放入到err中
//进行错误处理
}