1. 字符串的写法
- 单引号
- 双引号
反引号
let str1 = '刘德华'
let str2 = "张学友"
let str3 = `郭富城`
2. 转义
展示特殊字符 ```javascript let str1 = ‘Hello\ World’ console.log(str1) // “Hello World”
let str2 = ‘Hello\ World’ console.log(str2) // “Hello\ World”
let str3 = ‘C:\Windows\Boot’ console.log(str3) // “C:WindowsBoot”
let str4 = ‘C:\Windows\Boot’ console.log(str4) // “C:\Windows\Boot”
let str5 = ‘1234\n6789’ console.log(str5) // “1234 // 6789”
<a name="lFNdE"></a>
# 3. 长字符串
- 加号拼接
- 转义掉最后面的换行符
- ` 长字符串`
```javascript
let longStr1 = 'abcdefghijklmnopqrstuvwxyz' +
'1234567890'
let longStr2 = `abcdefghijklmnopqrstuvwxyz
1234567890`
let longStr3 = 'abcdefghijklmnopqrstuvwxyz\
1234567890'
4. 字符串模板
xxx${变量}yyy
把变量嵌到字符串中
let name = '刘德华'
let age = 60
let str = `我叫${name}, 我今年${age}岁`
console.log(str) // "我叫刘德华, 我今年60岁"
5. 字符串的方法**
长度计算,字符串拼接
- length
- charAt()
- charCodeAt()
- concat() ```javascript let str1 = ‘abcd’ console.log(str1.length) // 4 console.log(str1[0]) // “a” console.log(str1.charAt(1)) // “b” console.log(str1.charCodeAt(0)) // “97”
let str2 = ‘efgh’ let str3 = str1 + str2 console.log(str3) // “abcdefgh”
let str4 = ${str1} ${str2}
console.log(str4) // “abcdefgh”
let str5 = str1.concat(str2) console.log(str5) // “abcdefgh”
- **字符串查找**
- search()
- indexOf()
- lastIndexOf()
- includes()
- startsWith()
- endsWith()
```javascript
let str = "hello abcd, hello efgh"
console.log(str.search('el')) // 1
console.log(str.indexOf('el')) // 1
console.log(str.lastIndexOf('el')) // 13
console.log(str.indexOf('www')) // -1
console.log(str.includes('el')) // true
console.log(str.startsWith('hel')) // true
console.log(str.endsWith('ld')) // false
- 字符串截取
- 字符串操作不会修改原来的字符串
- substr()
- substring()
- slice() ```javascript let str = ‘abcdefg’
// substr的第一个参数是初始位置, 第二个参数是截取的长度 let sub1 = str.substr(1, 3) console.log(sub1) // “bcd”
// substring的第一个参数是初始位置, 第二个参数是结束位置(不包括) let sub2 = str.substring(1, 3) console.log(sub2) // “bc”
// 同substring,其参数允许为负 let sub3 = str.slice(1, 3) console.log(sub3) // “bc”
let sub4 = str.slice(1, -1) console.log(sub4) // “bcdef”
- **字符串其他处理**
- split()
- trim()
- trimleft()
- toUpperCase()
- toLowerCase()
- padStart()
```javascript
let str1 = 'h-e-l-l-o'
let str2 = 'hello'
// 分割字符串为数组,也可以用其他字符来分割
let arr1 = str1.split('-')
console.log(arr1) // ["h", "e", "l", "l", "o"]
let arr2 = str2.split('')
console.log(arr2) // ["h", "e", "l", "l", "o"]
let str = ' ABc '
// 去掉两边的空白字符
console.log(str.trim()) // "ABc"
// 去掉左边空白字符
console.log(str.trimLeft()) // "ABc "
// 变大写字母
console.log(str.toUpperCase()) // " ABC "
// 变小写字母
console.log(str.toLowerCase()) // " abc "
let ss = 'ab'
// 将字符串进行填充
// 第一个参数表示填充后的位数,第二个参数表示用什么来填充
console.log(ss.padStart(5, '*')) // "***ab"
6. 案例**
// 获取给定字符串中的url
let str = '<a href="https://developer.mozilla.org/zhCN/docs/Web/JavaScript">MDN</a>'
let start = str.indexOf('"') + 1
let end = str.lastIndexOf('"')
let url = str.substring(start, end)
console.log(url)