Array数组
Array构造函数
语法:var Name = new Array()
小括号()说明:
1.**预先知道数组要保存的项目数量**
2.**向Array构造函数中的传递数组应包含的项**
1 | // 第一种方式: 创建 一个保存颜色的数组,括号中如果不确定多少个值,就可以不写。 |
字面量创建
由一对包含数组项目的方括号【】表示,多个数组项之间,用 逗号隔开。
1 | // 第二种方式:字面量表示法 |
数组元素的读写
读取和设置时,使用方括号【】并提供相应的索引
说明:索引是从 0开始的正整数
当索引找不到,则返回 undefined
1 | // 第二种方式:字面量表示法 |
数组长度
语法:array:length
功能:获取数组array的长度
返回值:number
说明:
1.通过设置length 可以从数组的末尾移除项或向数组中添加新项
2.把一个值放在超出当前数组大小的位置上时,会重新计算数组长度值
**长度等于最后一项索引加1.**
1 | var arr ['a','b','c']; |
数组遍历
1 | for(var i = 0 ; i < arr.length; i++){ |
综合案例
1 | /* 任务 |
数组的栈方法
push()
语法:arrayObject. push( newele1,newele2……neweX)
功能:
把它的参数顺序**添加到** arrayObject 的**尾部**
返回值:
把指定的值添加到数组后的新长度
1 | var sum = []; |
unshift()
语法:arrayObject. unshift( newele1,newele2……neweX)
功能:
把它的参数顺序**添加到** arrayObject 的**开头**
返回值:
把指定的值添加到数组后的新长度
1 | var nums = [1, 3, 4, 5, 6]; |
pop()
语法: arrayObject. pop()
功能: 删除 arrayObject 中的最后一个元素
返回值: 被删除的那个元素
1 | var nums1 = [1, 3, 4, 5, 6]; |
shift()
语法: arrayObject. shift()
功能: 删除 arrayObject 中的第一个元素
返回值: 被删除的那个元素
1 | var nums1 = [1, 3, 4, 5, 6]; |
数组的转换方法
join()
语法:arrayObject. join(“分隔符”)
功能:用于**把数组**中的所有元素**转换成字符串**
返回值:字符串
1 | var nums = [2,3,4,5]; |
数组的重排序方法
reverse()
语法:arrayObject. reverse()
功能:用于颠倒数组中元素的顺序
返回值:数组
1 | var nums = [2,3,4,5]; |
sort()
语法:arrayObject. sort(sortby)
功能:对数组的元素进行排序
返回值:数组
说明:
1.即使数组中国的每一项都是数组,sort()方法比较的也是字符串
2.sort()方法可以接收一个比较函数作为参数
1 | var sum = [12,32,2,3,1,0,88,12,11]; |
案例练习
1 | // 存储 |
数组操作方法
concat()
语法:arrayObject. concat(arrayX,arrayX,…….arrayX)
功能:连接俩个或者多个数组 ( 可以复制数组 )
返回值:数组
1 | var arr = [1,2,3,4,5,6]; |
slice()
语法:arrayObject. slice( start, end )
功能:从已有的数组中返回选定的元素,( 可以复制数组 )
参数:
start(必须):规定从何处**开始选取**,如果是负数,从数组尾部开始算起
end(可选):规定从何处**结束选取**,是数组片断结束处的数组下标, **end 本身不在截取范围之内,省略时,截取至字符串的末尾**。
说明:
如果没指定end, 选取会从 start 到数组结束的所有元素
如果 **slice() 方法**的参数中**有一个负数**,则用**数组长度加上是那个负数确定相应的位置**
返回值:数组
1 | var arr = [1, 2, 3, 4, 5, 6]; |
splice() 增删替换
插入某个或多个元素
语法:arrayobject.splice( index,0, item1,item2……itmeX)
功能: 在指定位置插入值
参数:
index:起始位置
0 : 要删掉的元素个数 (删掉元素从插入位置开始,包括了插入的那个位置)
item1,….itmeX:要插入的项
返回值:空数组
说明:
1 | // 插入元素 |
删除某个或多个元素
语法:arrayobject.splice( index,count )
功能:删掉从 index 处开始的零个或多个元素
返回值:含有被删掉的元素的数组
说明:count是要删除的项目数量,如果设置为0,则不会删除项目。
(删掉元素从插入位置开始,包括了插入的那个位置)
如果不设置,则删除从index开始的所有值。
1 | // 删掉数组中的从索引2开始的,2个值。 |
替换某个或多个元素
语法:arrayobject.splice( index,count, item1,item2……itmeX)
功能: 在指定位置插入值
参数:
index:起始位置
count: 要删掉的元素个数 ( 删掉要替换的值 ) (删掉元素从插入位置开始,包括了插入的那个位置)
item1,….itmeX:要插入的项 (添加要替换的新值)
返回值:从原始数组中删掉的项(如果没有删掉,则返回空数组)
说明:
1 | // 插入元素 |
面试题
1 | // 实现b数组对a数组的拷贝,方法越多越好 |
案例练习
1 | var jj = []; |
字符串对象
字符串位置 charAt()
语法:stringObject.charAt( index )
功能:返回stringObject中index位置的字符
说明:SCMAScriopt5中可以使用’方括号加字符索引’来访问字符串中特定的字符,
但是ie7及更早的浏览器会返回undefined
1 | var str = 'hello word'; |
字符串编码 charCodeAt()
语法:stringObject.charCodeAt(index)
功能:返回stringObject中index位置的字符的字符编码
1 | var str = 'hello word'; |
检索字符串 indexOf()
语法:string object.indexOf(“O”);
功能:返回某个指定的字符串值在字符串中首次出现的位置;
返回值: 数值
说明:
如果没有找到该字符串,则返回 - 1.
默认搜索顺序是从左搜索的
1 | // 从某字符串中检测 是否有 某个字符串存在 |
检索字符串 lastIndexOf()
语法:string object.lastIndex(“O”);
功能:返回某个指定的字符串值在字符串中最后出现的位置,在一个字符串中的指定位置从后向前搜索。
返回值: 数值
说明:
如果没有找到该字符串,则返回 - 1.
默认搜索顺序是从右搜索的
1 | // 从某字符串中检测 是否有 某个字符串存在 |
截取字符串 substring()
说明: 语法及功能同slice ()完全一样
区别在于:
1.当参数为负数时,自动将参数转换为0
1 | var str = '慕课网,工程师的黄埔军校'; |
截取字符串 substr(start.len)
stringObject.substr(start.len)
功能:
截取子字符串
参数说明:
1.start:必需,指定子字符串的开始位置。
2.len:可选,表示截取的字符总数,省略时截取至字符串的末尾。
3.当start为负数时,会将传入的负值与 字符串的长度相加。
4.当len为负数时,返回空字符串。
1 | var str = 'hello world'; |
案例实践
1 | // 第一步:用第一种方式截取子字符串“world” |
1 | var str = "JavaScript 是属于网络的脚本语言!JavaScript 被数百万计的网页用来改进设计、验证表单、检测浏览器、创建cookies,以及更多的应用。JavaScript是因特网上最流行的脚本语言。 JavaScript很容易使用! 你一定会喜欢它的! ", |
综合应用实例
掌握字符串方法的综合应用:
编写js函数,用于获得输入参数的后缀名,如果输入adb.txt,返回.txt
1 | // 定义函数,封装操作方法,方便重复调用 |
1 | // 用户输入框 |
字符串对象的方法(分隔/替换/转换)
split(分割成字符串数组)
语法:stringobject.split( separator )
功能:把一个字符分割成字符串数组
返回值:Array
说明:separator:必需,分隔符。
1 | var str = 'welcome-to-beijing'; |
replace( 替换)
语法:stringobject.replace( regexp / substr, replacement )
功能:在字符串中使用一些字符替换另外一些字符,或者替换一个正则表达式匹配的子串
返回值:string
参数:
regexp: 必需,规定子字符串或要替换的模式的 RegExp 对象
replacement: 必需,一个子字符串值
1 | var tel = '010-65217921,400-100-0909,101-213891333,'; |
toUpperCase( 转换成大写 )
语法:stringObject.toUpperCase( )
功能:把字符串转为大写
说明:不会修改原字符串。
1 | // 全部转换成大写了 |
toLowerCase( 转换小写 )
语法:stringObject.toLowerCase( )
功能:把字符串转为小写
1 | // 全部转换成小写了 |
字符串综合案例
1 | // 封装字符串转数组 再拼接 - 方法 |
1 | /* |
Math对象方法
求最小值 min()
语法:Math.min(num1,num2,num3….)
功能:求一组数中最小值
返回值:number
1 | var min = Math.min(5,-4,108,9,11,-55); |
求最大值 max()
语法:Math.max(num1,num2,num3….)
功能:求一组数中最大值
返回值:number
1 | var max = Math.max(5,-4,108,9,11,-55); |
向上取整 ceil()
语法:Math.round(num)
功能:向上取整,返回大于num的最小整数
返回值:number
1 | var num = Math.ceil(189.99); |
向下取整 floor( )
语法:Math.floor()
功能: 向下取整,返回大于num的整数部分
返回值:number
1 | var num = Math.floor(189.99); |
四舍五入 round()
语法:Math.round()
功能:四舍五入
返回值:number
1 | var num = Math.round(189.40); |
绝对值 abs()
语法:Math.abs(num)
功能:返回num的 绝对值
返回值:number
1 | var mums = -55; |
随机整数的函数 random()
语法:Math.random( 随机整数的函数 )
功能:返回大于等于 0,小于1的一个随机数。
返回值:number
说明:求N到M之间的随机整数的公式: 👇
random = Math.floor( Math.random() * ( m - n + 1) +n)
1 | function getRandom(n, m) { |
随机整数案例
1 | var num = []; // 存放随机数 |
Date时间对象方法
语法:new Date();
功能:创建一个日期时间对象
返回值:不传参的情况下,返回当前的日期时间对象
1 | var today = new Date(); |
获取年月日时分秒及星期的方法
返回4位数的年份 getFullYear()
返回日期中的月份 getMonth() 返回值为 0 - 11,0⃣️ = 12月
返回月份中的天数 getDate()
返回星期,返回值为 0 - 6 getDay()
返回小时 getHours()
返回时分 getMinutes()
返回秒 getSeconds()
返回表示日期的毫秒 getTime()(返回从1970年1月1日00:00:00开始到现在的毫秒数)
1 | var weeks = ['日', '一', '二', '三', '四', '五', '六'], |
设置年月日时分秒及星期的方法
设置4位数的年份 setFullYear()
设置日期中的月份 setMonth() ,返回值为 0 - 11,0⃣️ = 12月
设置月份中的天数 setDate()
设置星期,返回值为 0 - 6 setDay()
设置小时 setHours()
设置时分 setMinutes()
设置秒 setSeconds()
#####返回表示日期的毫秒 setTime() (返回从1970年1月1日00:00:00开始到现在的毫秒数)
1 | // 50天后是星期几???? |