1. 字符串的写法

  • 单引号
  • 双引号
  • 反引号

    1. let str1 = '刘德华'
    2. let str2 = "张学友"
    3. 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”

  1. <a name="lFNdE"></a>
  2. # 3. 长字符串
  3. - 加号拼接
  4. - 转义掉最后面的换行符
  5. - ` 长字符串`
  6. ```javascript
  7. let longStr1 = 'abcdefghijklmnopqrstuvwxyz' +
  8. '1234567890'
  9. let longStr2 = `abcdefghijklmnopqrstuvwxyz
  10. 1234567890`
  11. let longStr3 = 'abcdefghijklmnopqrstuvwxyz\
  12. 1234567890'

4. 字符串模板

  • xxx${变量}yyy
  • 把变量嵌到字符串中

    1. let name = '刘德华'
    2. let age = 60
    3. let str = `我叫${name}, 我今年${age}岁`
    4. 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”

  1. - **字符串查找**
  2. - search()
  3. - indexOf()
  4. - lastIndexOf()
  5. - includes()
  6. - startsWith()
  7. - endsWith()
  8. ```javascript
  9. let str = "hello abcd, hello efgh"
  10. console.log(str.search('el')) // 1
  11. console.log(str.indexOf('el')) // 1
  12. console.log(str.lastIndexOf('el')) // 13
  13. console.log(str.indexOf('www')) // -1
  14. console.log(str.includes('el')) // true
  15. console.log(str.startsWith('hel')) // true
  16. 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)