JS day_08(5.17)String 、 Math

一、数组

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=['孙玉杰','彭立波','刘兴华','宋瑞娜','乌桐','李慧敏','李冠','潘坤','吕凯']

//console.log( arr.slice(2) )
//console.log( arr.slice(2,5) )
console.log( arr.slice(-3,-1) )

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=['孙玉杰','彭立波','刘兴华','宋瑞娜','乌桐','李慧敏','李冠','潘坤','吕凯']
//console.log( arr.splice(3) )
//console.log( arr.splice(3,2) )
//console.log( arr.splice(-3,2) )
console.log( arr.splice(-3,0,'王嘉伟','董爽') )
console.log(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=['李慧敏','李冠','潘坤']
//往数组的末尾添加元素
//console.log( arr.push('杨先遥','祝权') )
//删除末尾的一个
//console.log( arr.pop() )
//往数组的开头添加元素
//console.log( arr.unshift('刘美玲','姜冉') )
//删除数组开头的一个
//console.log(arr.shift())
//console.log(arr)
//检测数组中是否含有某个元素
console.log( arr.indexOf('涛哥') )

var arr=['和谐福','爱国福']
if(arr.indexOf('敬业福')===-1){
    arr.push('敬业福')
}
console.log(arr)


var arr=['和谐福','爱国福']
//清空数组
arr.length=0
console.log(arr)

(忘了也没关系,即用即查!)

JavaScript 教程

JavaScript 数组方法

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)
对比toStringString
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'
//字符串的长度
console.log( str.length )
//字符串在调用属性或者方法的时候,会自动将字符串包装为对象
console.log( new String(str).length )
//区分两个名称相同的属性或者方法是否为同一个,查看对象的类型是否相同
var arr=[a,b,c]
console.log(arr.length)

var str2='javascript'
console.log(str2.length)

charAt() 获取下标对应的字符,也可以使用数组的方式——字符串[下标]

获取字符通过下标练习:遍历字符串javascript,统计出字符a出现的次数

var str='javascript'
//获取字符通过下标
console.log( str.charAt(0),str[0] )

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'
//查找字符串中是否含有某个字符串
console.log( str.indexOf('a') )
//查找最后一个
console.log( str.lastIndexOf('a') )

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'
//console.log( str.slice(4,7) )
//console.log( str.slice(4) )
console.log( str.slice(-3,-1) )

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=arr.join('') //'abc'
//console.log(str)
//字符串转数组,指定分割的符号
console.log( str.split('') )

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] )

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值