一、字符串方法
- chartAt()
- 作用:通过下标找到对应字符
- 参数:下标(索引)
- 返回值:下标对应的字符
var str = 'sdasdjasjda';
var res = str.chatAt('2');
console.log(res)//a
- charCodeAt()
- 作用:通过下标找到对应字符ASCII码
- 参数:下标(索引)
- 返回值:下标对应字符的ASCII码
var str = 'sdasdjasjda';
var res = str.charCodeAt('2');
console.log(res)//97
- indexOf/lastIndexOf()
- 作用:查找第一个出现的某个特定值
- 参数:(n,m)
-
- n:要查找的值
- m:限定范围(indexOf中m是表示从这个下标开始/lastIndexOf中m是表示从这个下标位置结束)
- 返回值:第一次出现特定值的下标
var str = 'asdasdadsadsadasd';
var res = str.indexOf('a',5);
console.log(res);
- slice()
- 作用:截取字符串,包含n不包含m
- 参数:(n,m)
-
- n:起始索引(包含)
- m:结束索引(不包含)
- 返回值:查找的字符
-
- 从索引n开始查到索引m结束的字符
- 如果索引m不写,就是查找到最后
-
- 如果n只写一个0,或者不写就是复制一份
- 也可以为负数,转换成正数的规律:负数值加上str.length
var str="zhufengpeixun"
str.slice(1,3) ===>"hu"
str.slice(0) ===>复制一份
str.slice() ===>复制一份
var res=str.slice(-3,-1); ===>“xu”
4.1 subString(n,m)
- subString和slice基本都一样,唯一不同在于,subString不支持负数索引,而slice支持负数索引
4.2 substr(n,m)
- 作用:从索引n开始截取到m个字符
- 参数:n,m(个数)
- 返回值:截取的字符串
- 也支持从负索引开始
var str="zhufengu";
var res=str.substr(-3,2); ====>"ng"
- toUpperCase()
- 作用:把字符串转换为大写
- 参数:无
- 返回值:转换后的字符串
- toLowerCase(0)
- 作用:把字符串转换为小写
- 参数:无
- 返回值:转换后的字符串
- replace()
- 作用:把字符串中某部分的字符替换成另一部分字符
- 参数:(str1,str2)第一个参数代表的是要替换的字符或者是正则;第二个参数代表的是替换后的字符
- 返回值:替换后的字符串
var str="zhufeng2018zhufeng2019zhufeng";
var res=str.replace("zhufeng","珠峰");
//===>"珠峰2018zhufeng2019zhufeng"
var res=str.replace(/zhufeng/g,"珠峰");
console.log(res)===>"珠峰2018珠峰2019珠峰"
- split()
- 作用:按照指定的字符把字符串分割成数组
- 参数:分隔符
- 返回值:分割后的数组
- 通过数组方法的join对比记忆
var str="1-2-3";
var res=str.split("-");
console.log(res); ===> ["1", "2", "3"]
二、练习题
1.【时间字符串处理】把下面的字符串变成"2019年08月18日 12时32分18秒"
<script>
var str = "2019-8-18 12:32:18";
function timeText(){
res = str.split(' ');
var strLeft = res[0]
strLeft = strLeft.split('-');
year = strLeft[0];
month = strLeft[1]
day = strLeft[2]
var strRight = res[1];
strRight = strRight.split(':');
var hour = strRight[0]
var minute = strRight[1]
var second = strRight[2]
// console.log(strLeft, strRight);
var fina = `${year}年${addZero(month)}月${addZero(day)}日 ${addZero(hour)}时${addZero(minute)}分${addZero(second)}秒`;
function addZero(num) {
if (num < 10) {
return '0' + num
}
return num;
}
return fina;
}
console.log(timeText(str));
</script>
3. queryURLParams问号参数处理
var str = "https://www.baidu.com?name=zhufeng&age=10&id=14";
function urlParams() {
var obj = {};
var right = str.split('?')[1];
console.log(right);
ary = right.split('&');
//console.log(ary);
if (right) {
for (var i = 0; i < ary.length; i++) {
var item = ary[i].split('=');
obj[item[0]] = item[1];
}
}
return obj;
}
console.log(urlParams(str));
</script>
三、Math常用的方法
- Math称之为数学函数,它也是对象数据类型,主要是用来操作数字的
- Math.abs()
- 作用:求绝对值
- 参数:数字
- 返回值:数字的绝对值
console.log(Math.abs(-1))
- Math.ceil()
- 作用:向上取整(无论正负,取最大的值)
- 参数:数字
- 返回值:数字取整值
console.log(Math.ceil(-1.2))
- Math.floor()
- 作用:向下取整(无论正负,取最小的值)
- 参数:数字
- 返回值:取整值
console.log(Math.floor(-1.2))
- Math.round()
- 作用:四舍五入(只看数值不看正负)
- 参数:数字
- 返回值:四舍五入后的数字
- 注意:正数四舍五入,如果是负数,临界点必须是大于5的,
Math.round(1.5)
2
Math.round(-1.5)
-1
Math.round(-1.51)
-2
- Math.sqrt()
- 作用:开方
- 参数:数字
- 返回值:结果
console.log(Math.sqrt(9))
- Math.pow()(es6:n**m)
- 作用:取幂
- 参数:(n,m)
-
- n:底数
- m:幂指数
- 返回值:结果
console.log(Math.pow(3,2));
//console.log(3**2);
- Math.PI
- 作用:取圆周率
- 参数:无括号
- 返回值:圆周率
console.log(Math.PI)
- Math.max/Math.min()
- 作用:取最大最小值
- 参数:数字
- 返回值:最大/最小值
console.log(Math.max(1,3,2,2));
console.log(Math.min(1,3,2,43));
- Math.random()
- 作用:获取0-1之间的随机数(大于等于0,小于1)
- 参数:无
- 返回值:任意值
- 想要获取n到m之间的随机数:Math.random()*(m-n)+n;
console.log(Math.random());
// 获取10 到20 之间的随机数
Math.random()*10+10;
练习
//场景1:把盒子刷新一次换一次颜色(随机换颜色)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<style>
div{
width: 100px;
height: 100px;
}
</style>
</head>
<body>
<div>hju</div>
<script>
var box = document.querySelector('div')
console.log(box);
console.log(Math.floor(Math.random()*256));
box.style.background = `rgb(${Math.floor(Math.random()*256)},${Math.floor(Math.random()*256)},${Math.floor(Math.random()*256)})`;
</script>
</body>
</html>
//水仙花数
//场景2:找寻三位数中 百位三次方+十位三次方+个位三次方=这个三位数
//输入数字,若不符合要求则输出 "您输入的数字不规范"
//若输入的数字符合要求但是不是水仙花数则输出 "您输入的数字不是水仙花数"
function flower(num) {
if (num >= 100 && num < 1000) {
var numB = num.toString();
var hund = Number(numB[0])
var ten = Number(numB[1])
var bitt = Number(numB[2])
if (num == Math.pow(bitt, 3) + Math.pow(ten, 3) + Math.pow(hund, 3)) {
console.log(num);
} else {
return "您输入的数字不是水仙花数";
}
} else {
return "您输入的数字不规范";
}
}
console.log(flower());