String
是内置的构造函数,用于创建字符串。
<script>
// 使用构造函数创建字符串
let str = new String('hello world!');
// 字面量创建字符串
let str2 = '你好,世界!';
// 检测是否属于同一个构造函数
console.log(str.constructor === str2.constructor); // true
console.log(str instanceof String); // false
</script>
总结:
- 推荐使用字面量方式声明字符串,而不是
String
构造函数 - 实例属性
length
用来获取字符串的度长 - 实例方法
split
用来将字符串拆分成数组 - 实例方法
toUpperCase
用于将字母转换成大写 实例方法
toLowerCase
用于将字母转换成小写let str = 'hello world'
// 如果把字符串当做对象用,JS会自动包装字符串为对象 let obj = new String('hello world')
// console.log(str.length) // 11
// console.log(str.split('o')) // ['hell', ' w', 'rld']
// console.log(str.split('')) // ['h', 'e', 'l', 'l', 'o', ' ', 'w', 'o', 'r', 'l', 'd']
// console.log(str.split(' ')) // ['hello', 'world']
// console.log(str.toUpperCase()) // HELLO WORLD
console.log('HELLO World'.toLowerCase()) // hello world
实例方法
slice
用于字符串截取实例方法
substring
用于字符串截取// 字符串截取
// console.log('abcdefg'.substring(2, 4)) // cd 包括位置2的字符,不包括位置4的字符
// console.log('abcdefg'.substring(2)) // cdefg 从位置2的字符开始,一直截取到结尾
// console.log('abcdefg'.slice()) // abcdefg
// console.log('abcdefg'.slice(2)) // cdefg
// console.log('abcdefg'.slice(2, 4)) // cd
console.log('abcdefg'.slice(2, -2)) // cde 2表示从位置2开始截取,-2表示从后向前数两个字符
实例方法
substr
用于字符串截取(不建议使用了)- 实例方法
indexOf
检测是否包含某字符,包含则返回字符的位置,不包含则返回 -1 - 实例方法
startsWith
检测是否以某字符开头 实例方法
endsWith
检测是否以某字符结尾// console.log('abcdefg'.indexOf('c')) // 2
// console.log('abcdefg'.indexOf('x')) // -1
// console.log('abcdefg'.startsWith('abc')) // true
// console.log('abcdefg'.startsWith('cde')) // false
// console.log('abcdefg'.startsWith('cd', 2)) // true.表示从位置2开始算起,开头是cd吗?是
console.log('abcdefg'.endsWith('fg')) // true
console.log('abcdefg'.endsWith('e')) // false
console.log('abcdefg'.endsWith('e', 5)) // true. 5表示先截取5个字符,然后看这5个字符的结尾是否是e,答案是
实例方法
replace
用于替换字符串,支持正则匹配- 实例方法
padStart
固定长度字符开始位置打补丁 - 实例方法
padEnd
固定长度字符结束位置打补丁 - 实例方法
match
用于查找字符串,支持正则匹配 - 实例方法
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 也可以当做普通函数使用,这时它的作用是强制转换成字符串数据类型。