5.0 JavaScript基础之内置对象

532 阅读8分钟

5.1 JS中的数组

如何创建数组

JS数组中各项目类型不一定相同

使用Array构造函数

语法:new Array()

()内可以写:数组内保存的项目数量/向Array构造函数中传递数组应包含的项

字面量表示法

由一堆包含数组项的[]表示,多个数组元素之间用逗号隔开

数组元素的读写

读取和设置值时,使用方括号[]并提供索引; 索引是从0开始的正整数。

取不出来(超长度或者没有赋值)=值为undefined

数组长度

语法:array.length

功能:获取数组array的长度

返回值:number

说明:

  1. 通过设置length可以从狐族末尾移除或者向数组添加新元素 给数组长度赋值3则丢弃第三个元素之后的元素

  2. 把一个值放在超出长度的位置上,数组长度自动重新计算,长度等于最后一个索引+1

给第九个元素位置赋值“cat”,输出时中间未赋值部分为undefined,并且长度重新计算为9

数组的栈方法

push()往尾巴上加元素

语法:arrayObject.push(插入的新元素1,插入的新元素2,...)

语法:把新元素按顺序添加到数组的尾巴上

返回值:指定值添加到数组后的新长度(number)

push新元素“cat”进入数组尾巴,长度+1

unshift()往开头加元素

语法:arrayObject.unshift(插入的新元素1,插入的新元素2,...)

语法:把新元素按顺序添加到数组的尾巴上

返回值:指定值添加到数组后的新长度(number)

unshift新元素“duck”进入数组开头,长度+1

pop()删除尾元素,shift()删除头元素

语法:arrayObject.pop()

功能:删除数组的最后一个元素

返回值:被删除的元素(原数组的最后一个元素)

语法:arrayObject.shift()

功能:删除数组的第一个元素

返回值:被删除的元素(原数组的最后一个元素)

删除第一个和最后一个元素

数组转换方法

join()把数组转换成字符串

语法:arrayObject.join(分隔符)

功能:用于把数组中所有元素放进一个字符串,字符串拼接等

返回值:字符串

  • 字符串str1将数组元素变成一个字符串(默认使用“,”分隔)
  • 字符串str2将数组元素变成一个字符串(设置使用“~”分隔)
  • 字符串str3将数组元素变成一个字符串(设置' '内为空,就可以直接连在一起)

reverse()使数组反序

语法:stringObject.reverse()

功能:用于颠倒数组中元素的顺序

返回值:数组

这里不仅使用reverse颠倒了数组元素,并且连接join()函数将其作为一个数组连接输出

sort()给数组元素排序

语法:arrayObject.sort(sortby)

功能:用于对数组的元素进行排序

返回值:数组

说明:

  1. 即使数组中的每一项都是数值,sort()方法比较的也是字符串
var animals =['rabbit','woft','fox','snack','dog'];
console.log(animals.sort()); //"dog", "fox", "rabbit", "snack", "woft"
var num=[1,3,5,7,9,25,4,64,8];
console.log(num.sort()); //[1, 25, 3, 4, 5, 64, 7, 8, 9]

sort()函数内不添加任何值时以字符串大小排序(一个一个字符比较),比较数值时候也是按字符串比较形式,因此排出来25>3

  1. sort()方法可以接收一个比较函数作为参数
var num=[1,3,5,7,9,25,4,64,8];
num.sort(function(a,b){return a-b});//升序 
console.log(num);

在sort()中添加一个函数进行比较

concat()连接数组

语法:arrayObject.concat(数组1,数组2...)

功能:连接两个或多个数组

返回值:数组

在concat()函数中可以新建一个数组跟原数组连接

slice()返回某段元素

语法:arrayObject.slice(start,end)

功能:从已有的数组中返回选定的元素

参数:

  • start(必要)规定从哪里开始选取,如果是负数,从数组尾部开始算起
  • end(选用)规定从何处结束选取,是数组片段结束处的数组下标

说明:

  1. 如果没指定end,切分从start到结束的所有元素
  2. 如slice()方法的参数中有一个负数,则数组长度加上该数确定位置
  3. start和end都指的是数组中的索引值
  4. 截取从start到end的前一个元素

返回值:数组

start为3,则截取从下标为3的“7”开始,到下标为6-1的元素(第6个元素)结束 另一种情况: start为-3,意为length+(-3)=6,end为8,下标为7,所以输出“4,6”

splice()

删除

语法:arrayObject.splice(index,count)

功能:删除从index开始(下标)的零个或者多个元素

返回值:含有被删的元素的数组

说明:count是要删除的项目数量,如果设置0,则不删除项目,如果不设置,则删除从index开始到结束的所有值

插入

语法:arrayObject.splice(index,0,插入元素1,插入元素2...)

功能:在指定位置插入值

参数:

  • index:要被插队的下标(插入index前面)
  • 0:要删除的个数设为0

返回值:数组

设置插入点下标为2,意为将后续元素插入至下标2前面

替换

语法:arrayObject.splice(index,count,插入元素1,插入元素2...)

功能:在指定位置插入并删除=替换

参数:

  • index:要被插队的下标(插入index前面)
  • count:要删除的个数

返回值:从原始数组中删除的项

定位插入位置下标2,删除个数3个,插入个数3个(分别为4,4,4)

indexOf()正序查找元素

语法:arrayObject.indexOf(searchvalue,startIndex)

功能:从数组的开头(位置0)开始向后查找

参数:

  • searchvalue:必要,要查找的项
  • startIndex:可选,起点位置的索引

返回值:number,查找的项在数组中正序第一次出现位置,没找返回-1

没有设置查找位置时,从下标0开始全局查找,在下标3找到。

当查找起始位置从下标4开始时,7不在查找范围内,因此返回-1

lastIndexOf()倒序查找元素

功能:从数组的结尾(位置0)开始向后查找

参数:

  • searchvalue:必要,要查找的项
  • startIndex:可选,起点位置的索引

返回值:number,查找的项在数组中倒序第一次出现位置,没找返回-1

倒序查找7,在下标5的位置找到

lastIndexOf和indexOf只在部分浏览器中支持

查找时类型必须相同,不能用lastIndexOf("7")或indexOf("7")来查找数字“7”

5.2 JS中的字符串

## 字符串中查找

charAt()返回字符串中对应索引的字符

语法:stringObject.charAt(index)

功能:返回stringObject中 index 位置的字符,如果取不到就返回空

返回字符串中的索引为2的字符“a”

charCodeAt()返回字符串中对应索引字符的字符编码

语法:stringObject.charCodeAt(index)

功能:返回stringObject中index 位置字符的字符编码,如果取不到就返回空

查找字符串中的索引为2的字符的字符编码“97”

indexOf()正序查找字符串中指定字符

语法:stringObject.indexOf("想找的字符")

功能:从一个字符串中搜索给定的子字符串

返回值:number,查找的项在数组中正序第一次出现位置,没找返回-1

子串为“ar”,位于索引2和3,因此返回2

lastIndexOf()倒序查找字符串中指定字符

语法:stringObject.lastIndexOf("想找的字符")

功能:从一个字符串中搜索给定的子字符串

返回值:number,查找的项在数组中倒序第一次出现位置,没找返回-1

子串为“r”,位于索引3,因此返回3,不因正序倒序改变

截取字符串

slice()截取字符串

语法:stringObject(start,end),

功能:截取字符串

参数:

  • start:必要,指定子字符串开始位置
  • end:选用,表示子字符串的结束位置,不设置时默认截取至字符串末尾,所截取字符为其下标的前一个

举个例子:

开始于下标1,截取至下标4的前一位=下标3

  • 如slice()方法的参数中有一个负数,则数组长度加上该数确定位置

substring()截取字符串

与slice()语法一致

区别:

  • 当参数为负数,自动将参数转换为0

substr()截取字符串

语法:stringObject.substr(start,len)

功能:截取子字符串

参数:

  • start:必要,指定子字符串开始位置
  • len:选用,表示截取的字符数量,省略时截取至结尾
  • 如substr()方法的参数中有一个负数,则数组长度加上该数确定位置
  • 当len为负数时,返回空字符串

split()分割字符串为数组

语法:stringObject.split(拆分符)

功能:把一个字符串分割成字符串数组

返回值:数组

字符串中字符使用'-'分割开,所以可以使用“-”作为分隔符

replace()字符串中替换字符

语法:stringObject.replace(regexp/substr,replacement)

功能:在字符串中使用一些字符替换另一些字符,或替换一个与正则表达式匹配的字符

返回值:string

参数:

regexp:必要,规定子字符串要替换的模式的regexp对象

replacement:必要,一个字符串值

前被替换的字符,后换入的字符,缺点是只能替换一个字符

大小写转化

stringObject.toUpperCase()

功能:把字符串转化为大写

stringObject.toLowerCase()

功能:把字符串转化为小写