String 是内置的构造函数,用于创建字符串。

    1. <script>
    2. // 使用构造函数创建字符串
    3. let str = new String('hello world!');
    4. // 字面量创建字符串
    5. let str2 = '你好,世界!';
    6. // 检测是否属于同一个构造函数
    7. console.log(str.constructor === str2.constructor); // true
    8. console.log(str instanceof String); // false
    9. </script>

    总结:

    1. 推荐使用字面量方式声明字符串,而不是 String 构造函数
    2. 实例属性 length 用来获取字符串的度长
    3. 实例方法 split 用来将字符串拆分成数组
    4. 实例方法 toUpperCase 用于将字母转换成大写
    5. 实例方法 toLowerCase 用于将字母转换成小写

      1. let str = 'hello world'
      2. // 如果把字符串当做对象用,JS会自动包装字符串为对象 let obj = new String('hello world')
      3. // console.log(str.length) // 11
      4. // console.log(str.split('o')) // ['hell', ' w', 'rld']
      5. // console.log(str.split('')) // ['h', 'e', 'l', 'l', 'o', ' ', 'w', 'o', 'r', 'l', 'd']
      6. // console.log(str.split(' ')) // ['hello', 'world']
      7. // console.log(str.toUpperCase()) // HELLO WORLD
      8. console.log('HELLO World'.toLowerCase()) // hello world
    6. 实例方法 slice 用于字符串截取

    7. 实例方法 substring 用于字符串截取

      1. // 字符串截取
      2. // console.log('abcdefg'.substring(2, 4)) // cd 包括位置2的字符,不包括位置4的字符
      3. // console.log('abcdefg'.substring(2)) // cdefg 从位置2的字符开始,一直截取到结尾
      4. // console.log('abcdefg'.slice()) // abcdefg
      5. // console.log('abcdefg'.slice(2)) // cdefg
      6. // console.log('abcdefg'.slice(2, 4)) // cd
      7. console.log('abcdefg'.slice(2, -2)) // cde 2表示从位置2开始截取,-2表示从后向前数两个字符
    8. 实例方法 substr用于字符串截取(不建议使用了)

    9. 实例方法 indexOf 检测是否包含某字符,包含则返回字符的位置,不包含则返回 -1
    10. 实例方法 startsWith 检测是否以某字符开头
    11. 实例方法 endsWith 检测是否以某字符结尾

      1. // console.log('abcdefg'.indexOf('c')) // 2
      2. // console.log('abcdefg'.indexOf('x')) // -1
      3. // console.log('abcdefg'.startsWith('abc')) // true
      4. // console.log('abcdefg'.startsWith('cde')) // false
      5. // console.log('abcdefg'.startsWith('cd', 2)) // true.表示从位置2开始算起,开头是cd吗?是
      6. console.log('abcdefg'.endsWith('fg')) // true
      7. console.log('abcdefg'.endsWith('e')) // false
      8. console.log('abcdefg'.endsWith('e', 5)) // true. 5表示先截取5个字符,然后看这5个字符的结尾是否是e,答案是
    12. 实例方法 replace 用于替换字符串,支持正则匹配

    13. 实例方法 padStart 固定长度字符开始位置打补丁
    14. 实例方法 padEnd 固定长度字符结束位置打补丁
    15. 实例方法 match 用于查找字符串,支持正则匹配
    16. 实例方法 trim 用于去除字符串两边的空白 ```javascript // console.log(‘abcdefg’.replace(‘a’, ‘A’)) // Abcdefg // console.log(‘abcadeafg’.replace(‘a’, ‘A’)) // Abcadeafg 默认只替换找到的第1个a // console.log(‘abcadeafg’.replace(/a/g, ‘A’)) // AbcAdeAfg

    // console.log(‘abc’.padStart(5, ‘@’)) // @@abc 使用@把字符串补充到5位长度 // console.log(‘abc’.padEnd(5, ‘.’)) // abc.. 使用.把字符串补充到5位长度

    // console.log(‘ abcd ‘.trim()) // 去掉字符串前后的空格 document.querySelector(‘button’).addEventListener(‘click’, function () { // 获取输入框的值 let val = document.querySelector(‘input’).value val = val.trim() // 去掉字符串两边的空白 console.log(val) }) ``` 注:String 也可以当做普通函数使用,这时它的作用是强制转换成字符串数据类型。