一、数组
1.API
JS预定义的一组函数和方法
reverse() 翻转数组元素
sort() 对数组元素进行排序,默认是按照Unicode编码排序
sort(function(a,b){ return a-b //数字从小到大排列 //return b-a //数字从大到小排列 }) |
reverse() 翻转数组元素 | sort() 对数组元素进行排序 |
var arr=['a','b','c','d'] //翻转数组元素 arr.reverse() console.log(arr) | var arr=[23,9,78,6,45] //排序 //默认是按照首个字符的Unicode编码排列 //arr.sort() arr.sort( function(a,b){ //a、b代表每次拿到的两个数字 //console.log(a,b) //排序的条件,如果前边的大于后边 //return a-b //数字从小到大排列 return b-a//数字从到到小排列 } ) console.log(arr) |
toString() 将数组转为字符串
join() 将数组转为字符串,元素直接默认用逗号分割,可以指定分割的字符,如果需要字符之间紧紧挨凑,在括号内添加空字符 -> ('')
concat(数组1,数组2) 拼接多个数组
toString() &&join() | concat(数组1,数组2) 拼接多个数组 |
var arr=['a','b','c'] //数组转为字符串 //console.log( arr.toString() )//'a,b,c' //可以指定元素之间的分割字符 console.log( arr.join('') ) | var arr1=['孙玉杰','彭立波','刘兴华'] var arr2=['宋瑞娜','乌桐','李慧敏'] var arr3=['李冠','潘坤','吕凯'] //拼接成一个数组 //打印一个API的结果,这就是在看返回值 console.log( arr1.concat(arr2,arr3) ) console.log(arr1) |
如何学习一个API:作用、参数 数组API还需要查看原数组是否会发生变化 |
slice(start,end) 截取数组元素,start开始下标,end结束的下标,不包含end本身;end为空截取到最后,如果下标是负数表示倒数,返回截取的元素,格式为数组
/截取数组元素 | 练习:创建数组,包含a~h,每个字母是一个元素,分别截取出bc, f;把截取到的两部分拼接成一个数组。 |
var arr=['孙玉杰','彭立波','刘兴华','宋瑞娜','乌桐','李慧敏','李冠','潘坤','吕凯'] | var arr=['a','b','c','d','e','f','g','h'] var arr1=arr.slice(1,3) var arr2=arr.slice(-3,-2) //console.log(arr1,arr2) console.log( arr1.concat(arr2) ) |
splice(strat,count,v1,v2...) 删除数组元素,start开始的下标,count,删除的数量,count为空删除到最后,下标为负数表示倒数,v1,v2表示删除后要补充的元素,返回删除的元素,原数组会发生变化
删除数组元素 | 练习:创建数组包含a~h,每个字母是一个元素,分别删除cd,替换f为m,在下标为1的位置插入z |
var arr=['孙玉杰','彭立波','刘兴华','宋瑞娜','乌桐','李慧敏','李冠','潘坤','吕凯'] | var arr=['a','b','c','d','e','f','g','h'] console.log( arr.splice(2,2) ) console.log( arr.splice(-3,1,'m') ) console.log( arr.splice(1,0,'z') ) console.log(arr) |
push() 在数组的末尾添加元素,返回数组的长度,其中原数组会发生变化
pop() 删除数组末尾的一个元素,返回删除的元素,原数组会发生变化
unshift() 在数组的开头添加元素,返回数组的长度,其中原数组会发生变化
shift() 删除数组开头的一个元素,返回删除的元素,原数组会发生变化
indexOf() 查找数组中是否含有某个元素,返回是下标,如果找不到返回-1
push()&&pop()&&unshift() &&shift() | //练习:创建数组,包含和谐福、爱国福;判断数组中是否含有敬业福,如果没有则把敬业福添加到数组中 |
var arr=['李慧敏','李冠','潘坤'] | var arr=['和谐福','爱国福']
|
(忘了也没关系,即用即查!)
2.清空数组
给数组长度设置为0
数组.length=0
var arr=['和谐福','爱国福'] //清空数组 arr.length=0 console.log(arr) |
3.二维数组
数组中的元素还是数组,用于对数据进行二次分类
[[元素1,元素2],[元素3,元素4],....]
访问:
数组[下标][下标]
//省份 var arr1=['广东','江苏','河南'] //城市 //var arr2=['广州','深圳','珠海','惠州','南京','苏州','无锡','扬州','常州','郑州','洛阳','开封','商丘'] //对城市进行二次分类 //二维数组 var arr3=[ ['广州','深圳','珠海','惠州'], ['南京','苏州','无锡','扬州','常州'], ['郑州','洛阳','开封','商丘'] ] //console.log(arr3[0]) //查找苏州,商丘 console.log(arr3[1][1], arr3[2][3]) |
二、字符串对象
包装对象:目的是为了让原始类型的数据像引用类型数据一样,具有属性和方法,JS下有三种包装对象,分别是字符串对象、数值对象、布尔对象
new String() 将字符串包装为对象
String() 将一个值强制转换为字符串
包装为对象 | 强制转换为字符串 |
var str1='1' //字面量 var str2=new String('1') | var str3=String(true) console.log(str3,typeof str3) //console.log(str2,typeof str2) //console.log(str1+2) //console.log(str2+2) |
对比toString和String | |
var arr=[a,b,c] //toString是一个方法,只能通过对象来调用 | arr.toString() //String是一个函数,可以直接调用,将任意的值转为字符串 String(null) |
1.转义字符—— \
改变字符本身的意义
\' 将具有特殊意义的单引号转义为普通的引号
\t 将字符t转义为制表符(Tab键,出现多个连续空格)
\n 将字符n转义为换行符
//console.log('It\'s a dog') //console.log('a\tb') //console.log('a\nb') // \n换行符 | 练习:输出以下字符串C:\Users\Admin |
console.log('C:\\Users\\Admin') |
2.API
length 获取字符串的长度
var str='涛哥play' var str2='javascript' |
charAt() 获取下标对应的字符,也可以使用数组的方式——字符串[下标]
获取字符通过下标 | 练习:遍历字符串javascript,统计出字符a出现的次数 |
var str='javascript' | var str='javascript' //遍历字符串 //声明变量保存次数 for(var i=0,count=0;i<str.length;i++){ //console.log( str.charAt(i),str[i] ) //判断字符是否为a if(str[i]==='a'){ count++ } } console.log(count) |
【面试题:统计出一个字符串中,哪一个字符出现的次数最多,共有几次】
indexOf() 查找字符串中是否含有某个字符串,返回的是第一个的下标,找不到返回-1
lastIndexOf() 查找字符串中是否含有某个字符串,返回的是最后一个的下标,找不到返回-1
indexOf() ,lastIndexOf() | 练习:声明变量保存用户输入的邮箱,如果邮箱中不含有@,打印'非法的邮箱' |
var str='javascript' | var email='tao222#qq.com' if(email.indexOf('@')===-1){ console.log('非法的邮箱') } |
toUpperCase() 英文字母转大写
toLowerCase() 英文字母转小写
//英文字母大小写转换 var str='AbCd' console.log( str.toUpperCase() ) //大写 console.log( str.toLowerCase() ) //小写 //原来的字符串是否有变化 //字符串中所有的API都不会对原来的字符串产生影响 console.log(str) |
slice(start,end) 截取字符串,start开始的下标,end结束的下标,end为空截取到最后,下标为负数表示倒数
截取字符串 | 练习:声明变量保存一个邮箱,分别截取邮箱的用户名和域名,最后打印‘用户名:xxx,域名:xx’ |
var str='javascript' | var email='tao222@tedu.cn' //查找@的下标 var index=email.indexOf('@') //截取用户名 var user=email.slice(0,index) //截取域名 var domain=email.slice(index+1) console.log('用户名:'+user+' 域名:'+domain) |
split() 将字符串转为数组,需要指定分割的符号
spilt() 将字符串转为数组 | 练习:声明变量保存字符串,翻转字符串 |
var arr=['a','b','c'] | var str='abcd' //先把字符串转为数组,每个字符是一个元素 //将数组翻转 //将数组再次转回成字符串 console.log(str.split('').reverse().join('')) |
三、Math对象
提供一组数学相关的API
是一个特殊的对象,不需要创建就可以直接使用API
random() 获取一个随机数 范围>=0 <1
//获取随机 console.log( Math.random() ) |
var arr=['苏露影','黄尚','贾靖达','王孟宇','刘嘉辉','赵江','潘周聃','陈海涛','杨梦迪','曾欢'] //随机点名,获取随机下标0~9 整数 //0~1 * 10 0~9.x 取整 0~9 var n=parseInt( Math.random()*arr.length ) //console.log(n) //通过随机下标就可以找到元素 console.log( arr[n] ) |