一、字符串的创建
字面量的方式创建
var str = 'abc'内置构造函数的方式创建
var str1 = newString() ---->创建一个空的字符串
var str2 = newString('abc') ---->创建一个有内容的字符串
二、字符串的length和索引
字符串的length:和数组的length一样,表示字符串的长度。
var str = 'abc'
console.log(str.length) ---->输出值为3,表示字符串的长度为3字符串的索引:表示获取到字符串中指定位置的值。
var str = 'abc'
console.log(str[1]) ---->返回的值为索引1位置对应的值:b
注意:字符串中通过索引能够获取到指定位置的值,只不过获取到的值是只读的,换句话说,能看,但是不能改。
var str = 'abc'
str[1] = 'q' ----->因为字符串通过索引获得的值是只读的,我们修改是没用的,所以这一行代码没用
console。log(str1) -----> 返回值仍为:abc
遍历字符串
+ 使用 for 循环进行遍历字符串
+ 因为字符串的索引是一组有规律的数字
+ 循环可以提供一组有规律的数字
// 3. 遍历字符串
var str = 'hello world'
for (var i = 0; i < str.length; i++) {
console.log(str[i])
}
三、字符串的常用方法
- charAt 查询指定下标的值
语法:字符串.charAt(索引)
作用:查询指定下标的值
返回值:查询到的值,如果没有查询到的就是一个空的字符串
var str = 'abcd'
console.log(str.charAt(0)) ----->返回索引0对应的值:a
console.log(str.charAt(50)) ----->返回索引50对应的值,没有,返回空字符串
2.charCodeAt 查询指定下标的值对应的十进制码
语法:字符串.charCodeAt(索引)
作用:查询指定下标的值对应的十进制码
返回值:查询到的值对应的十进制码,如果没有查询到返回一个NaN
var str = 'abcd'
console.log(str.charCodeAt(0)) ----->a对应的十进制码为97
console.log(str.charCodeAt(50)) ----->查询不到返回NaN
3.toLowerCase 转换为小写
语法:字符串.toLowerCase()
作用:将这个字符串转换为小写
返回值:转换后的字符串
var str = 'ABCD'
console.log(str.toLowerCase()) ----->返回abcd
4.toUpperCase 转换为大写
语法:字符串.toUpperCase()
作用:将这个字符串转换为大写
返回值:转换后的字符串
var str = 'abcd'
console.log(str.toUpperCase()) ----->返回ABCD
5.substr 截取指定的字符串
语法:字符串.substr(开始索引,多少个)
作用:截取指定的字符串
返回值:截取到的字符串
var str = 'qwertyuiop'
var str1 = str.substr(0, 3) // 从 下标0开始, 截取3个, 其实应该就是 下标 0/1/2
var str1 = str.substr(3, 2) // 从 下标3开始, 截取2个, 其实应该就是 下标 3/4
console.log(str1)注意:mdn说明这个方法将来某一天可能会删除,所以建议我们使用substring
6.substring 截取指定的字符串
语法:字符串.substring(开始索引,结束索引)
作用:截取指定的字符串
返回值:截取到的字符串
注意:
1.参数包前不包后
2.结束索引默认值为字符串的长度
var str = 'qwertyuiop'
var str1 = str.substring(0, 3) // 从 下标 0 开始, 到下标 3 结束
console.log(str1)//qwe
var str2 = str.substring(0) // 从下标 0 开始, 结束索引因为没有传递, 所以默认是 length, 也就是从下标0开始, 一直到字符串最后
console.log(str2)//qwertyuiop
var str3 = str.substring() // 从下标 0 开始, 结束索引因为没有传递, 所以默认是 length, 也就是从下标0开始, 一直到字符串最后
console.log(str3)//qwertyuiopvar str = 'qwertyuiop'
console.log(str.substring(0))
---->从索引0开始,结束索引没有传递,索引默认是length,那么截取的就是从索引0到最后,qwertyuiop
7.slice 截取指定的字符串
语法:字符串.slice(开始索引,结束索引)
作用:截取指定的字符串
返回值:截取到的字符串
var str = 'qwertyuiop'
console.log(str.slice(0,3)) ----->从索引0开始到索引3结束,返回值为qwe
注意:
1.参数包前不包后
2.结束索引可以不写,相当于写了length
var str = 'qwertyuiop'
console.log(str.slice(0))
----->结束索引默认值为length,相当于截取索引0到最后位置的字符串:qwertyuiop
3.开始索引可以不写,不写相当于0
var str = 'qwertyuiop'
console.log(str.slice())
----->开始索引默认值为0,相当于截取索引0到最后位置的字符串:qwertyuiop
4.结束索引支持负数,相当于length加负数
var str = 'qwertyuiop'
console.log(str.slice(0,-2))
----->结束索引的位置为-2,相当于length + (-2),即截取索引0到索引8的字符串,返回值为qwertyui
- concat 拼接字符串
语法:字符串.concat(数据1,数据2...)
作用:将字符串和参数传递的数据进行拼接
返回值:拼接后的字符串
var str = 'qwe'
console.log(str.concat('@','+','!')) ----->返回值为:qwe@+!9.indexOf 寻找数据在字符串中的位置
语法:字符串.indexOf(数据,开始索引)
作用:寻找数据在字符串中的位置
返回值:找到的时候返回索引,找不到返回-1
var str = 'qwe'
console.log(str.indexOf('e',0)) ----->从索引0的位置开始寻找e,返回e的索引位置:2
console.log(str.indexOf('q',1)) ----->从索引1的位置开始寻找q,找不到q的索引位置,返回:-1注意:第二个参数可以不传递,默认值为0
var str = 'qwe'
console.log(str.indexOf('e'))
----->没有传递第二个参数,默认值为0,即从索引0的位置开始寻找e,最终返回e的索引位置:210.lastIndexOf 寻找数据在字符串中的位置
语法:字符串.lastIndexOf(数据,开始索引)
作用:寻找数据在字符串中的位置(从后往前/从右向左)
返回值:找到的时候返回索引,找不到返回-1
var str = 'qwe'
console.log(str.lastIndexOf('e',0)) ----->从索引0的位置开始寻找e,返回e的索引位置:2
console.log(str.lastIndexOf('q',1)) ----->从索引1的位置开始寻找q,没有找到,返回:-1注意:第二个参数可以不传递,默认值为length-1
var str = 'qwe'
console.log(str.indexOf('q'))
----->没给开始索引的位置,默认为length-1,即开始索引的位置为索引2,返回:011.split
语法:字符串.split(数据,开始索引)
作用:在字符串中找到‘符号’,然后将这个字符串分割并放在一个数组内
返回值:一个数组
var str = 'qwer, tyui, asdf, ghjk'
console.log('原始字符: ', str)
var str1 = str.split(',') // 通过 , 将 字符串 str 分隔到一个数组中
console.log(str1) // ['qwer', ' tyui', ' asdf', ' ghjk']
var str2 = str.split('i') // 通过 i 将 字符串 str 分隔到一个数组中
console.log(str2) // ['qwer, tyu', ', asdf, ghjk']
var str3 = str.split(' ') // 通过 一个空格 将 字符串 str 分隔到一个数组中
console.log(str3) // ['qwer,', 'tyui,', 'asdf,', 'ghjk']
var str4 = str.split('') // 传递的是一个空字符串, 会将这个字符串全部分隔开, 放在一个数组中
console.log(str4) // ['q', 'w', 'e', 'r', ',', ' ', 't', 'y', 'u', 'i', ',', ' ', 'a', 's', 'd', 'f', ',', ' ', 'g', 'h', 'j', 'k']
var str5 = str.split('@') // 通过一个 @ 将字符串 str分隔到一个数组中
console.log(str5) // ['qwer, tyui, asdf, ghjk']注意:参数如果传递的是空字符串,会将字符串全部分隔开
var str = 'qwer, yuio, assdf'
console.log(str.split('')) ----->会得到13个字母、2个‘,’以及2个空格组成的长度为17的数组
12.trim 去掉字符串两侧的空格
语法:字符串.trim()
作用:去掉字符串两侧的空格
返回值:去掉空格后的字符串
var str = ' ab c '
console.log(str) ----->原来的字符串: ab c (前后有空格)
console.log(str.trim()) ----->新的字符串:ab c(前后没空格)
13.trimStart/trimLeft 去掉字符串左侧的空格
语法:字符串.trimStart() /字符串.trimLeft()
作用:去掉字符串左侧的空格
返回值:去掉左侧空格的字符串
var str = ' ab c '
console.log(str) ----->原来的字符串: ab c (前后有空格)
console.log(str.trimStart()) ----->新的字符串:ab c (左侧没空格)
14.trimEnd/trimRight 去掉字符串左侧的空格
语法:字符串.trimEnd() /字符串.trimRight()
作用:去掉字符串左侧的空格
返回值:去掉左侧空格的字符串
var str = ' ab c '
console.log(str) ----->原来的字符串: ab c (前后有空格)
console.log(str.trimEnd()) ----->新的字符串:ab c(右侧没空格)
15.includes 判断当前字符串中是否拥有字符串片段
语法:字符串.includes(字符串片段)
作用:判断当前字符串中是否拥有字符串片段
返回值:true/false
var str = 'qwertyuiop'
console.log(str.includes('tyui')) ----->true
console.log(str.includes('tyuip')) ----->false复制代码16.startsWith 判断 字符串开头 是不是指定的 字符串片段
语法:字符串.startsWith(字符串片段)
作用:判断 字符串开头 是不是指定的 字符串片段
返回值:true/false
var str = 'qwertyuiop'
console.log(str.startsWith('qwer')) ----->true
console.log(str.startsWith('wer')) ----->false17.endsWith 判断字符串结尾是否是指定的字符串片段
语法:字符串.endsWith(字符串片段)
作用:判断字符串结尾是否是指定的字符串片段
返回值:true/false
var str = 'qwertyuiop'
console.log(str.endsWith('iop')) ----->true
console.log(str.endsWith('io')) ----->false18.replace 替换字符串
语法:字符串.replace('要被替换的字符','替换的字符')
作用:找到当前字符串中第一个参数对应的值,然后将其替换为第二个字符串
返回值:替换完成的字符串
var str = 'abcdefg'
console.log(str.replace('abc','@@!!')) ----->返回值:@@!!defg
console.log(str.replace('qwer','@@!!'))
----->在原字符串内没有找到第一个参数对应的值,就不会执行替换操作,所以返回值仍为:abcdefg
695

被折叠的 条评论
为什么被折叠?



