取值
1str.charAt(1) // 返回下标
2str[1] // 返回下标
3str.charCodeAt(1) // 返回下标对应Unicode编码
4String.fromCharCode(97, 99) // 'ac' 返回对应Unicode码对应字符
截取
- 不会对原始字符串修改,返回值的副本
- 只有一个参数,截取到字符结束
- 起始下标,结束下标 -1
- 起始大于结束,会互换
- 起始为负数,默认变 0
- 起始下标,结束下标-1
- 起始大于结束,不换位,返回空字符串
- 出现负值,为倒数 = length + 负数
- 起始下标,截取位数
- 出现负值,为倒数 = length + 负数
位置查询
1str.indexOf('o') // 查询字符下标 没有返回 -1
2str.lastIndexOf('o') // 从末尾查询 下标还是从左开始 没有返回 -1
3str.indexOf('o', 6) // 下标 6 开始查询
4str.lastIndexOf('2', 3) // 下标 3 向下标 0 倒序搜
5str.search('ol') // 下标 0 开始查找 indexOf 但可以传正则
分隔/拼接
1// 分隔
2str.split(',', 2)
3// 参数 1:以“,”分隔 返回数组,可以传正则
4// 参数 2:可选,返回数组的 length,后面多余的不会有
5
6// 拼接
7str.concat('!') // 拼接字符串
编辑/替换
1str.trim() // 删除前后的空格,中间的空格不会删除,返回副本
2
3// replace:查找字符,要替换字符
4str.replace('at', 'oo') // coo, bat, sat 只会替换第一个
5str.replace(/at/g, 'oo') // coo, boo, soo 全局替换要正则表达式
大小写转换
1str.toUpperCase() // AAA BB 大写
2str.toLocaleUpperCase() // AAA BB 大写
3str.toLowerCase() // aaa bb 小写
4str.toLocaleLowerCase() // aaa bb 小写
带 Locale 是针对地区的转换,Unicode 码可能存在不同,如土耳其地区需要对应的特殊规则才能转换,所以最好使用地区特定的转换方法。
URI 编码方法
1encodeURI('https://www.baidu.com /') // https://www.baidu.com%20/(只有空格替换成 %20)
2encodeURIComponent('https://www.baidu.com /') // https%3A%2F%2Fwww.baidu.com%20%2F (除字母数字符号,替换成对应的编码)
3decodeURI('https://www.baidu%23.com%20') // https://www.baidu%23.com ( %20 会变成空格,%23 是 decodeURIComponent 的字符不会被转换 )
4decodeURIComponent(url1) // https://www.baidu#.com (所有的字符变成原来的,但这个字符不是一个有效的 URL)
eval()
1eval('function hi(){console.log(\'hi\');}')
2hi() // eval 可以将字符串直接当做完整的 js 代码解析运行
3eval('var a = \'hello world\'') // 不会有变量提升,因为包含在字符串中,只有 eval 运行的时候才会被解析
::: warning 注意
当开启严格模式后 eval 会存在作用域