字符串
创建字符串
1.字面量
语法: var str = 'abc'
2.构造函数
内置构造函数的形式创建字符串
字符串的索引和 length 属性
索引和length的含义与 数组 相同
length : 长度
索引(下标): 获取字符串的长度
注意 : 字符串中通过索引能够获取到指定位置的值,
只不过 获取到的值是 只读 的 ,换句话说获取到的值, 能看 不能 改
操作字符串的方法
1. charAt
语法: 字符串.charAt(索引)
作用: 查询指定下标的值
返回值: 查询到的值,如果没有查询到就返回一个 空字符串
2. charCodeAt
语法:字符串.charCodeAt(索引)
作用: 查询指定下标的值 对应的十进制码
返回值: 查询到的值对应的十进制码,
如果没有查询到会返回一个 NaN
3. toLowerCase
语法:字符串.toLowerCase()
作用:将字符串转换为小写
返回值:转后的字符串
4. toUpperCase
语法:字符串.toUpperCase()
作用:将字符串转换为大写
返回值:转后的字符串
5. substr
语法:字符串.substr(开始索引, 多少个)
作用:截取指定的字符串
返回值:截取到的字符串
注意: 官方说明这个方法未来某一天可能会删除
建议使用 substring
*6. substring
语法:字符串.substring(开始索引, 结束索引)
作用:截取指定的字符串
返回值:截取到的字符串
注意: 参数包前不包后,结束下标不写相当于length
7. slice
语法:字符串.slice(开始索引, 结束索引)
作用:截取指定的字符串
返回值:截取到的字符串
注意: 参数包前不包后,结束下标不写相当于length
结束索引支持负数,相当于length + 负数
8. concat
语法:字符串.concat(数据1,数据2,...)
作用:将字符串和参数传递的数据进行拼接
返回值:拼接后的字符串
9. indexOf
语法:字符串.indexOf(数据,开始索引)
作用:寻找数据在字符串中的位置(从前往后)
返回值:找的的话返回数据下标,找不到返回 -1
注意: 开始下标可以不写,默认是 0
10. lastIndexOf
语法:字符串.lastIndexOf(数据,开始索引)
作用:寻找数据在字符串中的位置(从后往前找)
返回值:找的的话返回数据下标,找不到返回 -1
注意: 开始下标可以不写,默认是 length - 1
11. split
语法:字符串.split('符号')
作用:在字符串中找到‘符号’然后将这个字符串分隔,并放在一个数组内
返回值:一个数组
注意: 参数如果传递的是空字符串('') ,会将字符串全部分割开
12. trim
语法:字符串.trim()
作用:去掉字符串两侧的空格
返回值:去掉空格后的字符串
13. trimStart / trimLeft
语法:字符串.trimStart() / 字符串.trimLeft()
作用:去掉字符串左侧的空格
返回值:去掉空格后的字符串
14. trimEnd / trimRight
语法:字符串.trimEnd() / 字符串.trimRight()
作用:去掉字符串右侧的空格
返回值:去掉空格后的字符串
15. includes
语法:字符串.includes(字符串片段)
作用:判断当前字符串中是否有字符串片段
返回值:布尔值 true / false
16. startsWith
语法:字符串.startsWith(字符串片段)
作用:判断当前字符串开头是不是字符串片段
返回值:布尔值 true / false
17. endsWith
语法:字符串.endsWith(字符串片段)
作用:判断当前字符串结尾是不是字符串片段
返回值:布尔值 true / false
18. replace
语法:字符串.replace('要被替换的字符',替换的字符)
作用:替换字符串的内容
返回值:替换后的字符串
典型案例:(面试题)
统计字符串中 每个字符出现的次数 (以对象的形式存储)
var str = 'aaabbbccddeeee'
var obj = {}
var i = 0
for (i = 0; i < str.length; i++){
var key = str[i]
if(obj[key] === str[i]){
obj[key]++
}
else{
obj[key] = 1
}
}
for(key in obj){ //遍历这个对象
console.log(key + ':' + obj[count])
}