05-内置对象与API

60 阅读3分钟

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):出现了中文符号,缺少括号等

1.jpg

引用错误(ReferenceError):使用了未声明的变量

2.jpg

类型错误(TypeError):函数或者对象下的方法找不到

3.jpg

自定义错误:程序员自己指定的错误

​ throw 错误内容

(2)错误处理

try{   
	//尝试执行,可能出现错误  
}catch(err){   
	//捕获错误,一旦try中出现错误才会执行   
	//将错误放入到err中   
	//进行错误处理  
}  

4.jpg