一、字符串的创建
- 字面量的方式创建
var str = 'abc'
- 内置构造函数的方式创建
var str1 = new String() ---->创建一个空的字符串
var str2 = new String(’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
三、字符串的常用方法
- 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'
console.log(str.substr(0,3)) ---->从索引0开始截取三个,qwe
mdn说明这个方法将来某一天可能会删除,所以建议我们使用substring 6.substring
- 语法:字符串.substring(开始索引,结束索引)
- 作用:截取指定的字符串
- 返回值:截取到的字符串
var str = 'qwertyuiop'
console.log(str.substr(0,3)) ---->从索引0开始到索引3结束,返回值为qwe
注意:
1.参数包前不包后
2.结束索引默认值为字符串的长度
var 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的索引位置:2
10.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,返回:0
11.split
- 语法:字符串.split(数据,开始索引)
- 作用:在字符串中找到‘符号’,然后将这个字符串分割并放在一个数组内
- 返回值:一个数组
var str = 'qwer, yuio, assdf'
console.log(str.split('o')) ----->通过‘o’将字符串分割到一个数组中,返回['qwer, yui', ', assdf']
注意:参数如果传递的是空字符串,会将字符串全部分隔开
var str = 'qwer, yuio, assdf'
console.log(str.split('')) ----->会得到13个字母、2个‘,’以及2个空格组成的长度为17的数组
12.trim
- 语法:字符串.trim()
- 作用:去掉字符串两侧的空格
- 返回值:去掉空格后的字符串
var str = ' a b c '
console.log(str) ----->原来的字符串: a b c (前后有空格)
console.log(str.trim()) ----->新的字符串:a b c(前后没空格)
13.trimStart/trimLeft
- 语法:字符串.trimStart() /字符串.trimLeft()
- 作用:去掉字符串左侧的空格
- 返回值:去掉左侧空格的字符串
var str = ' a b c '
console.log(str) ----->原来的字符串: a b c (前后有空格)
console.log(str.trimStart()) ----->新的字符串:a b c (左侧没空格)
14.trimEnd/trimRight
- 语法:字符串.trimEnd() /字符串.trimRight()
- 作用:去掉字符串左侧的空格
- 返回值:去掉左侧空格的字符串
var str = ' a b c '
console.log(str) ----->原来的字符串: a b c (前后有空格)
console.log(str.trimEnd()) ----->新的字符串:a b 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('qwerp')) ----->false
17.endsWith
- 语法:字符串.endsWith(字符串片段)
- 作用:判断字符串结尾是否是指定的字符串片段
- 返回值:true/false
var str = 'qwertyuiop'
console.log(str.endsWith('iop')) ----->true
console.log(str.endsWith('iopa')) ----->false
18.replace
- 语法:字符串.replace('要被替换的字符','替换的字符')
- 作用:找到当前字符串中第一个参数对应的值,然后将其替换为第二个字符串
- 返回值:替换完成的字符串
var str = 'abcdefg'
console.log(str.replace('abc','@@!!')) ----->返回值:@@!!defg
console.log(str.replace('qwer','@@!!'))
----->在原字符串内没有找到第一个参数对应的值,就不会执行替换操作,所以返回值仍为:abcdefg