字符串
字符串是js的一种数据类型,用""或’'括起来
字符串定义
1.
var str1 = 'hello'
2,
var str1 = new String('hello')
1,new String()里面的参数可以是任意类型,最后都会调用toString方法转为string类型
2,如果不使用new关键词,等于没有开启新的内容空间来存储引用,也就是当前的类型不是对象类型,而是基本数据类型
字符串的属性和方法
数组是一个容器,字符串也是一个容器,所以对应存在增删改查的方法
由于字符串是只读,增删改查是不会修改原本的字符串,而是返回一个新的字符串
1,length 长度
不能改变字符串的长度,不能通过下标赋值来改变字符串
var str = '123'
console.log(str.length);//3
计算字符串的长度
用下标找值,
//通过下标查询对应的字符
var str = 'abac'
console.log(str[0]); //a
charAt方法找值
// 通过charAt方法来获取,返回的是字符串
console.log(str.charAt(0)); //a 等同于str[0]
用charCodeAt获取ASCII码
// 获取对应下标值的ASCII码
console.log(str.charCodeAt(0)); //97
用fromCharCode将ASCII反转为字符
方法为内置的静态方法
// 将ASCII反转为字符
var codeStr = String.fromCharCode(100)
console.log(codeStr); //d
indexOf找值的下标
// indexOf 根据字符串来返回对应的第一次出现的下标,找不到返回-1
console.log(str.indexOf('a')); //0
console.log(str.indexOf('a', 3)); //-1 从下标1开始找起
// lastIndexOf 根据字符串来返回对应的第一次出现的下标,从后面往前找,找不到返回-1
console.log(str.lastIndexOf('a')); //2
substring截取方法
var str3 = 'abcdefgh'
var newStr3 = str3.substring(1, 3) //从下标1开始,截取到下标3结束,不包括结束下标位置
console.log(newStr3); //bc
split分割方法
分割为数组,与数组的join相反(也可以根据正则截取,返回值为string类型数组)
var str4 = 'a,b,c,de,f'
var strArr = str4.split(',') //用,分割
var strArr2 = str4.split(',', 2) //截取2个
console.log(strArr); //'a', 'b', 'c', 'de', 'f'
console.log(strArr2); //'a', 'b'
转大写,转小写
var str5 = 'ASDF'
var bstr5 = str5.toLocaleLowerCase()
console.log(bstr5); //asdf
var lstr5 = str5.toLocaleUpperCase()
console.log(lstr5);//ASDF
Math 数学一系列计算的函数(静态函数)
//静态属性 Π
console.log(Math.PI); //3.1415.....
//科学计算 E
console.log(Math.E); //2.71....
//关于Math的静态方法
//求大小 max最大值 min最小值
console.log(Math.max(2, 3)); //3
console.log(Math.min(2, 3)); //2
//向下取整
console.log(Math.floor(3.9)); //3
//向上取整
console.log(Math.ceil(3.2)); //4
//四舍五入
console.log(Math.round(3.4)); //3
//幂次方
console.log(Math.pow(1,10));//1 1的10次方
//开平方
console.log(Math.sqrt(9));//3
//随机数
console.log(Math.random());// 随机生成一个0到1的数,不包括1
//去绝对值
console.log(Math.abs(-2)); //2
replace替换匹配的值,变成另一个值,返回一个新的字符串
var str2 = 'abababab'
var newStr = str2.replace('a', 'c') //将a替换成c,但只会找第一个a进行替换
console.log(newStr);
//将所有的a替换成c的方法,用循环
for (var i = 0; i < str2.length; i++) {
if (str2.indexOf('a') != -1) { //只要还有a
str2 = str2.replace('a', 'c') //将a替换成c
} else {
break
}
}
console.log(str2);
search查询
search()里面的参数可以是正则
var str1 = 'abcgdjgf'
//查询,返回第一个匹配的下标,找不到返回-1
console.log(str1.search('abc')); //0
//正则表达式,是一个用于匹配的表达式,可以用来匹配任意的字符串
var re = /abc/
console.log(str1.search(re)); //0
正则表达式的常见内容
^表示开头 $表示结束
var re = /^abcgdjg$/
console.log(str1.search(re));//-1 一样才是0,只会是0和-1两种可能
[]表示元素其中一个,{}表示个数
var str = 'abcddf'
var re = /[cd]{3}/ //c或d一共至少有三个
console.log(str.search(re));//2
+表示一个或多个
var str = 'abcddf'
var re = /[d]+/ //d有一个或多个
console.log(str.search(re));//3
在[]内可以用 - 表示区间,但必须是正的区间
var re = /[a-z]/ //匹配abcd.....z 26个字母
var re = /[0-9]/ //匹配012..9 10个数
var re = /[a-z1-9]/ //匹配ab....z12...9