字符串
概述
String对象是JavaScript原生提供的三个包装对象之一,用来生成字符串的包装对象实例。
var s = new String("abc");
typeof s // "object"
s.valueOf() // "abc"
上面代码生成的变量s,就是String对象的实例,类型为对象,值为原来的字符串。实际上,String对象的实例是一个类似数组的对象。
除了用作构造函数,String还可以当作工具方法使用,将任意类型的值转为字符串。
String(true) // "true"
String(5) // "5"
属性
length:返回字符串长度
"abc".length
// 3
方法
1. charAt
返回一个字符串的给定索引位置的字符
var s = new String("abc");
s.charAt(1) // "b"
可以用数组下标替代
s[1] // b
2. concat
连接两个字符串。原字符串不受影响,返回一个新字符串
var s1 = 'abc';
var s2 = 'def';
s1.concat(s2) // "abcdef"
s1 // "abc"
3. substring
用法类似数组slice,第一个参数表示子字符串的开始位置,第二个位置表示结束位置,第二个位置所在的子字符串不会被提取。第一个参数大于第二个参数时,会自动更换两个参数的位置。不会改变原字符串
var a = 'The Three Musketeers';
a.substring(4, 9) // 'Three'
a.substring(9, 4) // 'Three'
4. substr
第一个参数是子字符串的开始位置,第二个参数是子字符串的长度。不会改变原字符串
var b = 'The Three Musketeers';
b.substr(4, 9) // 'Three Mus'
b.substr(9, 4) // ' Mus'
5. slice
第一个参数是子字符串的开始位置,第二个参数是子字符串的结束位置。与substring方法不同的是,如果第一个参数大于第二个参数,slice方法并不会自动调换参数位置,而是返回一个空字符串。不会改变原字符串
var c = 'The Three Musketeers';
c.slice(4, 9) // 'Three'
c.slice(9, 4) // ''
6. indexOf 和 lastIndexOf
返回某个指定的子字符串在原字符串中首次出现的位置。indexOf是从头开始匹配,lastIndexOf是从末尾匹配(即最后一次出现的位置)。返回值为-1时,代表原字符串中没有该指定的子字符串。
"hello world".indexOf("o") // 4
"hello world".lastIndexOf("o")// 7
7. trim
去除字符串两端的空格。返回一个新字符串,不改变原字符串。
8. toLowerCase 和 toUpperCase
大小写转换
"Hello World".toLowerCase()
// "hello world"
"Hello World".toUpperCase()
// "HELLO WORLD"